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)

相关推荐
hi0_611 分钟前
Linux 第二讲 --- 基础指令(二)
linux·运维·服务器
好记忆不如烂笔头abc14 分钟前
oceanbase开启内存大页
linux·服务器·oceanbase
二狗哈16 分钟前
go游戏后端开发29:实现游戏内聊天
服务器·游戏·golang
飞鹰服务器1 小时前
服务器与电脑的区别
运维·服务器·电脑
开发小能手-roy2 小时前
ubuntu 服务器版本网络安全
服务器·web安全·ubuntu
无名之逆2 小时前
Hyperlane 文件分块上传服务端
服务器·开发语言·前端·网络·http·rust·php
5 3213 小时前
无公网实体服务器加装多个操作系统供多个用户互不打扰使用_part1
运维·服务器
达斯维达的大眼睛3 小时前
Linux网络多进程并发服务器和多线程并发服务器
linux·服务器·网络
A林玖4 小时前
【学习笔记】服务器上使用 nbconvert 将 Jupyter Notebook 转换为 PDF
服务器·笔记·学习
星释4 小时前
阿里云服务迁移实战: 02-服务器迁移
服务器·阿里云·云计算