Appearance
服务器部署
打包
- 打包命令
go build [-o output] [-i] [build flags] [packages]
参数名 | 格式 | 含义 |
---|---|---|
-o | -o file | 指定编译后二进制文件名 |
-a | -a | 强制重新编译涉及的依赖 |
-s | -s | 省略符号表并调试信息 |
-w | -w | 省略 DWARF 符号表 |
-p | -p | 指定编译过程中的并发数,默认为CPU数 |
-work | -work | 设置该参数后不会在程序结束后删掉编译的临时文件,可用于参看编译生成的文件 |
-n | -n | 加上该参数可以查看编译的过程,但不会继续执行编译后的二进制文件 |
-x | -x | 加上该参数可以查看编译的过程,会继续执行编译后的二进制文件 |
- 打包环境
参数 | 含义 | 示例 |
---|---|---|
CGO_ENABLED | 是否Cgo标志 | CGO_ENABLED=0 |
GOOS | 打包平台linux/windows/darwin... | GOOS=linux |
GOARCH | 打包架构 amd64/arm64 | GOARCH=amd64 |
- 示例
bash
# 默认打包
go build test.go
# 指定环境打包
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
部署
- 安装nohup守护进程工具,让go能持续后台运行
bash
# 一般系统默认自带nohup工具
nohup --version
- 把打好的包上传到linux服务器
bash
# scp [账号]@[目标服务器]:/[本地包的地址] [服务器地址]
scp root@192.168.1.100:/Users/project/bao /www/wwwroot/test
- 更新线上环境配置文件
bash
# 把开发环境的配置文件上传到[包]的同级目录
# 更改配置文件的配置
- 后台运行包
bash
# & 是指后台运行
# 2>&1 是吧bao运行产生的日志 记在bao.log中
nohup ./test > test.log 2>&1 &
- 配置nginx代理让外部访问
config
server{
listen 80
access_log /var/log/nginx/base_access.log;
error_log /var/log/nginx/base_error.log;
location ~ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 配置文件的端口
proxy_pass http://127.0.0.1:8080;
}
}
关闭进程
bash
# 查找test包的进程id
ps -aux | grep test
# 杀死进程
kill 26081