这里是lzzut的博客,主要用来分享自己的一些学习经验,如代码或项目相关的学习经验,后续也可能分享一些其他的,我会使用分类功能进行区分。
博客
-
关于复现BBS-GO
一、基础配置
使用镜像文件启用虚拟机,这里我使用的是24.04.4版本的Ubuntu,使用以下两行命令安装基础工具
sudo apt update && sudo apt upgrade -y(更新系统包)
sudo apt install -y curl wget git vim nano build-essential net-tools(下载工具)安装1.24及以上版本的go语言(我这里安装的是1.24.4版本的GO语言)
wget https://go.dev/dl/go1.24.4.linux-amd64.tar.gz(下载压缩包)
sudo rm -rf /usr/local/go(若有旧版本的go语言则进行移除,没有则无需此操作)
sudo tar -C /usr/local -xzf go1.24.4.linux-amd64.tar.gz(解压压缩包到指定位置)
rm go1.24.4.linux-amd64.tar.gz(移除压缩包)配置环境变量
nano /etc/profile(使用nano或者vim对profile进行修改)
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct(于profile最底部添加这四行代码以此启用全局变量和优化下载体验)
source /etc/profile(使配置生效)
go version(查看是否成功及检查版本)安装Node.js、pnpm和前端依赖
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash –
sudo apt-get install -y nodejs
npm install -g pnpm
cd ../site(进入前端目录)
pnpm install(安装项目依赖,安装过程中出现警告运行pnpm approve-builds命令执行脚本)验证安装Node.js
node -v
npm -v二、下载编译BBS-GO
创建专属文件夹
sudo mkdir -p /opt/bbs-go进入文件夹
cd /opt/bbs-go下载BBS-GO代码
git clone https://github.com/mlogclub/bbs-go.git编译项目
go mod download(下载依赖,需进入bbs-go中的server文件中)
make build (编译)三、安装Mysql
安装Redis和MySQL
sudo apt install mysql-server启用服务并开机自启
sudo systemctl start mysql
sudo systemctl enable mysql可运行sudo mysql_secure_installation加固MySQL的安装
配置数据库
sudo mysql -u root -p(以root身份进入MySQL)
CREATE DATABASE bbsgo CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;(创建数据库bbsgo)
CREATE USER ‘bbsuser’@’localhost’ IDENTIFIED BY ‘你的密码’;(创建用户)
GRANT ALL PRIVILEGES ON bbsgo.* TO ‘bbsuser’@’localhost’;(赋予权限)
FLUSH PRIVILEGES;(刷新权限)
EXIT;(退出)四、配置、部署文件
复制配置文件并进行修改
cp bbs-go.example.yaml bbs-go.yaml
nano bbs-go.yaml(根据自己的需求更改配置)我这边复现主要注意以下几行配置:
Port: 8082 # 服务监听端口
BaseUrl: http://你的域名:8080 # 网站域名
# 数据库连接配置
DB:
Url: 用户名:密码@tcp(localhost:3306)/bbsgo_db?charset=utf8mb4&parseTime=True&loc=Local
# 日志配置
Logger:
Filename: /var/log/bbs-go/bbs-go.log # 确保日志目录存在并有写入权限创建日志目录并授权
sudo mkdir -p /var/log/bbs-go
sudo chown -R $USER:$USER /var/log/bbs-go配置前端环境
cp .env.example .env.production (复制示例文件,会发现没有.env.example这个文件)
nano .env.production(直接编辑生产环境配置)设置后端API地址
SERVER_URL=http://你的域名:8082构建生产版本
pnpm build五、生产环境部署与进程管理
使用Supervisor管理后端进程
安装、配置Supervisor
sudo apt install supervisor -y配置bbs-go后端配置
sudo nano /etc/supervisor/conf.d/bbs-go.conf后端服务配置:
[program:bbs-go]
command=/opt/bbs-go/bbs-go/server/bbs-go -config /opt/bbs-go/bbs-go/server/bbs-go.yaml(这些路径为bbs-go的路径,每个人不太一样)
directory=/opt/bbs-go/bbs-go/server(同上)
process_name=bbs-go
autostart=true
autorestart=true
stopwaitsecs=10
user=bbsuser
redirect_stderr=true
stdout_logfile=/var/log/bbs-go/supervisor.log
stderr_logfile=/var/log/bbs-go/supervisor_err.log使用PM2管理前端进程
安装PM2
sudo npm install -g pm2使用PM2启动前端应用
pm2 start .output/server/index.mjs –name bbs-go-site设置开机自启
pm2 startup
pm2 save使用Nginx进行反向代理
安装、配置Nginx
sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/bbs-go(创建站点配置)配置示例:
server {
listen 80;
server_name 你的域名;(我这里使用的是本地域名:localhost)
# 前端站点代理
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# 后端 API 代理
location /api/ {
proxy_pass http://localhost:8082;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}启用站点并测试:
sudo ln -s /etc/nginx/sites-available/bbs-go /etc/nginx/sites-enabled/(启用站点)
sudo nginx -t(测试配置)
sudo systemctl reload nginx(重载配置)启动服务并验证
启动Supervisor管理的后端服务
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl restart bbs-go启动 PM2 管理的前端服务
pm2 restart bbs-go-site启动Nginx
sudo systemctl start nginx
sudo systemctl enable nginx验证服务状态
sudo supervisorctl status bbs-go(检查后端服务)
pm2 status(检查前端服务)
sudo systemctl status nginx(检查Nginx服务)六、完成安装
进入服务所在地址完成安装流程