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条评论