使用 Supervisor 部署 Go(Golang) 应用

安装 Supervisor

apt-get update

apt-get install -y supervisor 

service supervisor start

上传编译后的可执行文件

以项目 https://github.com/mazeyqian/go-gin-example-start 为例。

GOOS=linux GOARCH=amd64 go build main.go

编译完成以后可以 GIT 或者 SCP 将文件上传到服务器。

scp binaryname  user@host.address:/root/go

编写 supervisorctl file 管理应用

# cmd
nano /etc/supervisor/conf.d/main.conf

# file content
[program:main]
directory=/root/go/go-gin-example-start
command=/root/go/go-gin-example-start/main
autostart=true
autorestart=true
stderr_logfile=/root/go/go-gin-example-start/main.err
stdout_logfile=/root/go/go-gin-example-start/main.log

# reload
supervisorctl reload

# status
supervisorctl status 

应用迭代后操作 Supervisor。

# start
supervisorctl start main

# stop
supervisorctl stop main

# restart
supervisorctl restart main

使用 Nginx 代理

# install
apt install -y nginx

# add site
nano /etc/nginx/sites-available/main

# file content
upstream gogin {
    server 127.0.0.1:8214;
    keepalive 64;
}
server {
    listen 80;
    server_name example.com service.example.com;
    location / {
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    Host  $http_host;
        proxy_set_header    X-Nginx-Proxy true;
        proxy_set_header    Connection "";
        proxy_pass http://gogin;
    }
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
        expires 30d;
    }
    location ~ .*\.(js|css)?$ {
        expires 1h;
    }
}

# create a symbolic link
ln -s /etc/nginx/sites-available/main /etc/nginx/sites-enabled

# restart nginx
systemctl restart nginx

# status
nginx -t

# check
curl http://127.0.0.1
telnet 127.0.0.1 80
telnet 127.0.0.1 8214

对外打开 80 端口

# port
netstat -aptn

# open
iptables -I INPUT -p tcp --dport 80 -j ACCEPT

# status
iptables -nL

版权声明

本博客所有的原创文章,作者皆保留版权。转载必须包含本声明,保持本文完整,并以超链接形式注明作者后除和本文原始地址:https://blog.mazey.net/2624.html

(完)

后除

View posts by 后除
Mazey's blog.

2 Comments

  1. reviewer
    高压锅
    2022年5月21日

    Need alter `server_name`.

    回复
  2. reviewer
    后除
    2022年5月20日

    apt-get install -y git

    mkdir go

    git clone https://github.com/mazeyqian/go-gin-example-start.git

    回复

发表评论

您的电子邮箱地址不会被公开。