Gin编译部署到centos并搭配Nginx运行
Gin编译部署到centos并搭配Nginx运行
自从入门Go语言之后,上回学了beego框架并做了一个小东西,最近学了Gin框架并写了一个API接口,今天尝试部署到Centos上,并让他运行,网上查找了相关的资料,对于这方面到介绍很少,基于上回部署beego项目,我在想是不是也可以把他打包成二进制文件,然后用利用Nginx端口进行转发,经过试验,最终发现是可行性的。
下面介绍如何进行打包编译,分为Mac环境跟Win环境打包编译。
一、编译打包
Win环境下打包编译:
set GOARCH=amd64 set GOOS=linux go build
Mac环境下打包编译:
go env -w GOARCH=amd64 go env -w GOOS=linux go build
这样编译后项目根目录下就会生成一个二进制文件
编译打包后,记得把环境改回原来的,不然本地调试可能报错
win:
set GOOS=windows
mac:
go env -w GOOS=darwin
这样我们就在本地完成编译打包。
二、Centos环境运行
上传我们刚刚打包编译好的二进制文件,并赋予777权限,命令如下
chmod 777 personApi
运行二进制文件
./personApi
正常运行是没报错,然后可以通过ip地址:端口进行访问。
但是如果我们关闭SSH连接工具,就不能访问了,所以我们可以让后台守护进程运行,命令行如下:
nohup ./personApi&
并通过以下命令行看看是否运行成功:
netstat -ntlp
如果想终止运行可以通过上面的命令行查看进程占用哪个端口,并输入以下命令行进行终止:
kill PID
三、使用Nginx进行转发端口
前提步骤,注册个域名并解析到当前服务器IP,并申请证书提前下到目录下。
然后我们打开Nginx配置文件,在server后面再加入一段server配置,请将下图到域名以及证书目录改成自己到
server { listen 80; listen 443 ssl; server_name .test.com; charset utf-8; access_log /www/wwwroot/test.com.access.log; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #HTTP_TO_HTTPS_START if ($server_port !~ 443){ rewrite ^(/.*)$ https://$host$1 permanent; } #HTTP_TO_HTTPS_END ssl_certificate /www/wwwroot/test.com.pem; ssl_certificate_key /www/wwwroot/test.com.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; error_page 497 https://$host$request_uri; #SSL-END location /(css|js|fonts|img)/ { access_log off; expires 1d; root "/www/wwwroot/test.com/api/static"; try_files $uri @backend; } location / { try_files /_not_exists_ @backend; } location @backend { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:9999; } }
配置完之后,请重启Nginx,然后直接通过域名访问,成功打开就可以了。
0条评论