Go 语言项目部署, Go 项目部署
注:本教程不包含golang编译部分,请自行编译;项目使用supervisor进行部署。
supervisor详细操作可以参考:Supervisor 配置详解
安装epel(已安装可以忽略)
yum install epel-release
安装supervisor
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
yum install supervisor
配置supervisor
supervisor的配置文件是/etc/supervisord.conf,需要做下修改
需要将下图中原本是.ini的配置文件后缀改为.conf(自己喜欢,可以不改),配置中的supervisord.d即是项目的配置目录
补充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 ;标准错误日志位置
启动Go项目
启动supervisor,并查看相应项目运行情况
supervisord -c /etc/supervisord.conf # 启动supervisor supervisorctl status hbxm # 查看项目运行情况
测试
如图,项目接口访问成功
其它
外网访问配合nginx做反向代理就好了