Go 语言项目部署, Go 项目部署

注:本教程不包含golang编译部分,请自行编译;项目使用supervisor进行部署。

supervisor详细操作可以参考:Supervisor 配置详解

安装epel(已安装可以忽略)

yum install epel-release

20210730145128266.png

安装supervisor

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

yum install supervisor

2021073014554056.png

配置supervisor

supervisor的配置文件是/etc/supervisord.conf,需要做下修改

image.png

需要将下图中原本是.ini的配置文件后缀改为.conf(自己喜欢,可以不改),配置中的supervisord.d即是项目的配置目录

image.png

补充supervisor命令

supervisorctl status       # 查看所有任务状态
supervisorctl shutdown     # 关闭所有任务
supervisorctl start 程序名  # 启动任务
supervisorctl stop 程序名   # 关闭任务
supervisorctl reload       # 重启supervisor

部署Go项目

在supervisord.d项目目录下新建test.conf配置文件,按照以下配置进行填写,注意程序名称,以及编译后的程序运行位置

[program:bluebell]  ;程序名称
user=root  ;执行程序的用户
command=/data/app/bluebell/bin/bluebell /data/app/bluebell/conf/config.yaml  ;执行的命令,即编译后的程序文件位置
directory=/data/app/bluebell/ ;命令执行的目录
stopsignal=TERM  ;重启时发送的信号
autostart=true  
autorestart=true  ;是否自动重启
stdout_logfile=/var/log/bluebell-stdout.log  ;标准输出日志位置
stderr_logfile=/var/log/bluebell-stderr.log  ;标准错误日志位置

image.png

启动Go项目

启动supervisor,并查看相应项目运行情况

supervisord -c /etc/supervisord.conf    # 启动supervisor
 
supervisorctl status hbxm     # 查看项目运行情况

image.png

测试

如图,项目接口访问成功

image.png

其它

外网访问配合nginx做反向代理就好了