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)

相关推荐
xuanwojiuxin2 小时前
linux panic-propagation
linux·运维·服务器
achene_ql4 小时前
select、poll、epoll 与 Reactor 模式
linux·服务器·网络·c++
黎相思5 小时前
应用层自定义协议与序列化
运维·服务器·网络
jllllyuz6 小时前
如何为服务器生成TLS证书
运维·服务器·数据库
简朴-ocean6 小时前
如何删除linux空的文件夹
linux·运维·服务器
Code Warrior7 小时前
【Linux】Linux基础指令3
linux·服务器
光路科技8 小时前
TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
服务器·网络·重构
半桔8 小时前
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
linux·运维·服务器·面试·centos
wanhengidc8 小时前
服务器中CC攻击的特点有哪些?
运维·服务器
小杜的生信筆記8 小时前
生信服务器 | 做生信为什么推荐使用Linux服务器?
linux·运维·服务器