系统: CentOS 7.9
简单的 go 项目部署
Windows 打包
使用cmd在程序目录下执行打包
go env -w CGO_ENABLED=0 GOOS=linux GOARCH=amd64
go build 源码文件(main.go)
部署
给与打包后的二进制文件添加运行权限
chmod +x /项目的全路径/打包的二进制文件名
使用nohup后台运行
nohup /项目的全路径/打包的二进制文件名 > 日志存放路径(ApiStart.log) 2>&1 &
使用 netstat -tunlp
查询端口,检查服务是否运行。
Nginx 安装
- 添加CentOS 7 Nginx yum资源库,打开终端,使用以下命令:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
- 安装Nginx
sudo yum install -y nginx
- 启动Nginx(安装后不会自己启动)
sudo systemctl start nginx.service # 启动NGIX
如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面;
- 开启自启维护
sudo systemctl enable nginx.service
nginx.conf 配置
使用 nginx -t
查询nginx.conf 的路径。
使用 vim /路径/nginx.conf
编辑 nginx.conf
...
http {
...
server
{
listen 80 default_server; # 设置80端口并作为默认服务器
listen 443 ssl http2;
root {路径}; # 项目路径
index index.html; # 主页资源
server_name {域名}; # 域名绑定,server_name _;表示匹配任何域名或IP;
#SSL-START SSL相关配置
#error_page 404/404.html;
ssl_certificate /证书路径/fullchain.pem; # pem文件的路径
ssl_certificate_key /证书路径/privkey.pem; # key文件的路径
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; # 安全链接可选的加密协议
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; # 加密算法
ssl_prefer_server_ciphers on; # 使用服务器端的首选算法
ssl_session_cache shared:SSL:10m; # shared缓存
ssl_session_timeout 10m; # 缓存有效期
#SSL-END
# HTTP反向代理相关配置开始 >>>
location / {
proxy_pass http://127.0.0.1:{项目端口}; # 反代
add_header Access-Control-Allow-Origin *; # 允许跨域
}
# HTTP反向代理相关配置结束 <<<
access_log /日志路径/日志.log;
error_log /日志路径/错误.log;
}
}
校验
使用 nginx -t
来校验 nginx.conf
重启
使用 ps -ef | grep nginx
查看 nginx 安装目录。
进入路径 cd /usr/sbin
使用 nginx -s reload
来重启 Nginx 或 sudo service nginx restart
完
参考
https://cloud.tencent.com/developer/article/2070787
http://t.csdnimg.cn/SMg7J
http://t.csdnimg.cn/2mX5B
https://www.cnblogs.com/ryanzheng/p/13124128.html
https://developer.aliyun.com/article/766958
http://t.csdnimg.cn/bT47Z
https://cloud.tencent.com/developer/ask/sof/102254991