Golang在Ubuntu上的部署指南
在部署前,请确保Ubuntu服务器满足以下条件:
build-essential工具包(用于编译Go程序);sudo apt update,确保系统包信息是最新的。sudo apt install golang-go,系统会自动下载并安装Golang(默认版本为Ubuntu仓库提供的稳定版,如1.20.x)。go version,若输出类似go version go1.20.3 linux/amd64,则说明安装成功。.tar.gz文件(如go1.23.0.linux-amd64.tar.gz),使用wget命令下载:wget https://golang.org/dl/go1.23.0.linux-amd64.tar.gz。/usr/local目录(系统级安装路径):sudo tar -C /usr/local -xzf go1.23.0.linux-amd64.tar.gz。~/.bashrc(或~/.profile)文件,添加以下内容:export GOROOT=/usr/local/go # Golang安装根目录
export GOPATH=$HOME/go # Go项目工作目录
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin # 将Go命令加入PATH
保存后运行source ~/.bashrc使配置生效。go version,确认输出正确的版本信息。sudo apt update && sudo apt install snapd。sudo snap install go --classic,Snap会自动下载并安装最新稳定版的Golang。go version,检查版本输出。~/my-golang-app),运行go mod init my-golang-app(my-golang-app为模块名称,可自定义),生成go.mod文件(用于管理依赖)。main.go文件,内容如下(以经典的Hello World程序为例):package main
import "fmt"
func main() {
fmt.Println("Hello, Ubuntu + Golang!")
}
go build -o my-golang-app(生成可执行文件my-golang-app);./my-golang-app,终端将输出Hello, Ubuntu + Golang!若项目需要使用第三方库,建议开启Go Modules(Golang 1.16及以上版本默认开启):
运行go env -w GO111MODULE=on,之后使用go get <package-name>安装依赖(如go get github.com/gofiber/fiber/v2)。
若应用需要对外提供服务(如Web服务),可通过Nginx反向代理将流量转发到Golang程序:
sudo apt install nginx。/etc/nginx/sites-available/default文件,修改server块内容:server {
listen 80;
server_name yourdomain.com; # 替换为你的域名或公网IP
location / {
proxy_pass http://localhost:3000; # 转发到Golang程序的监听端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
sudo systemctl restart nginx,使配置生效。go version无法识别,检查~/.bashrc中的PATH配置是否正确,并确保运行了source ~/.bashrc。chmod +x my-golang-app给可执行文件添加执行权限。go get无法下载依赖,检查网络连接是否正常,或配置Go代理(如go env -w GOPROXY=https://goproxy.cn,direct,国内推荐使用七牛云代理)。