Debian 12 服务器搭建Beego环境

一、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

  1. 利用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; } 效果如下: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0c920edad1ad450a984036b4da87297a.png)

相关推荐
会飞的涂涂几秒前
Linux中的粘滞位和开发工具和文本编辑器vim
linux·运维·服务器
别催小唐敲代码15 分钟前
解决跨域的4种方法
java·服务器·前端·json
用户呢称43 分钟前
Linux | WEB服务器的部署及优化
运维·服务器
hi0_62 小时前
Git 第一讲---基础篇 git基础概念与操作
linux·服务器·c++·git
蠢货爱好者2 小时前
Linux中web服务器的部署及优化
linux·服务器·前端
Amctwd3 小时前
【Godot】生命周期详解:从节点诞生到销毁的全流程解析
服务器·godot
几道之旅3 小时前
linux种文件名usr的含义是什么?
linux·运维·服务器
大块奶酪----4 小时前
某信服EDR3.5.30.ISO安装测试(一)
linux·运维·服务器
猴子请来的逗比4895 小时前
文本三剑客试题
linux·运维·服务器
Aaaa小嫒同学5 小时前
在spark中配置历史服务器
服务器·javascript·spark