首页 > 其他分享 >Golang 项目部署

Golang 项目部署

时间:2022-12-27 13:11:53浏览次数:39  
标签:supervisor supervisord bluebell 部署 项目 supervisorctl Golang conf 进程

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

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

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

问题可以参考:error: <class 'FileNotFoundError'>, [Errno 2] No such file or directory: file: /usr/lib/python3/dist-packages/supervisor/xmlrpc.py line: 560

安装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做反向代理就好了

标签:supervisor,supervisord,bluebell,部署,项目,supervisorctl,Golang,conf,进程
From: https://www.cnblogs.com/python9090/p/17007852.html

相关文章