一、Debian 12系统准备
1.更新系统
#apt update && apt upgrade -y
2.安装基础工具
#apt install -y git curl wget make gcc
二、安装Go环境
Go语言的镜像官网:https://golang.google.cn/
1.下载go最新版
#cd /usr/local/src
#wget -o https://golang.google.cn/dl/go1.24.2.linux-amd64.tar.gz
#tar -zxvf go1.24.2.linux-amd64.tar.gz -C /usr/local
2.设置环境变量
#vim /etc/profile.d/go.sh
export GOPROXY=https://goproxy.cn # 设置代理
export GOROOT=/usr/local/go #Go的安装目录(这儿用的二进制版本)
export GOPATH=/data/go #Go的工作目录
export GOBIN=$GOPATH/bin
export PATH=PATH:GOROOT/bin:$GOPATH/bin # 设置环境变量
然后执行:
#source /etc/profile.d/go.sh 让配置立即生效
3.查看go版本
#go version
三、安装Beego 及Bee,生成mybeego-app
(一)使用 Go Modules 管理依赖
1.创建项目目录
#mkdir -p /opt/mybeego-app
2.初始化 Go 模块
#go mod init leyuxy.online/mybeego-app
#vim main.go
输入如下内容:
package main
import "github.com/beego/beego/v2/server/web"
func main() {
web.Run()
}
#go mod tidy
3.安装Bee
#go get github.com/astaxie/beego(可能安装不上)
#go install github.com/beego/bee@latest
此时,Bee应该就安装成功了
(二)利用bee new mybeego-app
1.删除/opt/mybeego-app
#rm -rf /opt/mybeego-app
- 利用bee new mybeego-app
#cd /opt
#bee new mybeego-app
#ls
此时运行会弹出错误。
3.清理和更新依赖
#go clean -modcache
#go mod tidy
或手动获取beego依赖:
#go get -u github.com/astaxie/beego (建议用这个命令)
#ls
4.生产环境编译(禁用调试模式,优化二进制)
编译 Linux 可执行文件(静态链接,避免依赖问题)
#CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o mybeego-app
四、使用 Systemd 管理进程
1.创建 Systemd 服务文件
#vim /usr/lib/systemd/system/mybeego.service
2.写入以下内容:
Unit
Description=My Beego App
After=network.target
Service
Type=simple
User=www-data
Group=www-data
WorkingDirectory=/opt/mybeego-app
ExecStart=/opt/mybeego-app/mybeego-app
Restart=always
RestartSec=3
#Environment="GIN_MODE=release" # 生产模式
#Environment="BEEGO_RUNMODE=prod" # Beego 生产模式
Install
WantedBy=multi-user.target
3.管理服务
#systemctl daemon-reload
#systemctl start mybeego
#systemctl enable mybeego # 开机自启
#systemctl status mybeego
4.查看日志
#journalctl -u mybeego -f # 实时日志
五、使用 Nginx 反向代理
配置 Nginx 代理到 Beego 应用(默认监听 8080):
root@iZ2vc4lk3435sxtvgjdc79Z:conf.d\]# cat lessonpreparation.conf server { listen 443 ssl; server_name lp.leyuxy.online; ... location / { proxy_ssl_server_name on; *proxy_pass http://127.0.0.1:8080;* ... } # access_log /var/log/nginx/jupyterlab-access.log; } 效果如下: 