打包二进制文件

进入 main.go 目录

  1. CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

CGO_ENABLED 是否使用 CGO
GOOS 目标平台系统 (Windows linux darwin)
GOARCH 目标平台系统架构 (arm arm64 amd64)

独立部署

给予执行权限

  1. chmod 773 main

在后台运行

  1. nohup ./main &

后台运行一个程序
1.先用 netstat -tln 查看端口信息
2.isof -i:端口 可以找到程序进程号PID
3.kill PID 可以关闭程序

调试

  1. curl http://127.0.0.1:9090/someGetMethod

一个例子

比如要让redis-server程序后台运行

  1. 非后台运行:
  1. $> ./redis-server

2.后台运行:

  1. $> nohup ./redis-server 1>/dev/null 2>&1 &

其中数字1代表标准输出,2代表错误信息输出,还有未使用的标准输入即数字0.
1>/dev/null 2>&1 &的意思是标准信息输出到空设备即不做任何处理,也不做任何显示,/dev/null也可以替换为文本文件名(如 out.log),此时标准信息就会输出到指定文件.
2>&1表示错误信息输出到标准输出,即输出同1>后面的位置,当然也可以直接指定新文件名(如 err.log).
最后的& 表示程序后台运行
上面的命令还可简写:

  1. nohup ./redis-server >/dev/null 2>&1 &

即去掉标准输出数字1

NGINX 部署

反向代理

  1. server
  2. {
  3. listen 80;
  4. server_name api.maomilaoshi.top;
  5. charset utf-8;
  6. location / {
  7. try_files /_not_exists_ @backend;
  8. }
  9. location @backend {
  10. proxy_set_header X-Forwarded-For $remote_addr;
  11. proxy_set_header Host $http_host;
  12. proxy_pass http://127.0.0.1:9090;
  13. }
  14. access_log /www/wwwlogs/api.maomilaoshi.top.log;
  15. error_log /www/wwwlogs/api.maomilaoshi.top.error.log;
  16. }

参考

nginx 部署
Go 打包二进制文件