前言
最近有个国内机反代api,明明只跑了一个nginx,却总是会挂掉
看负载也很低,然后nginx的error log也是空白的
最后怀疑可能是系统有问题,无奈之下决定装个守护吧
因为本来偷懒了装的宝塔面板,看了下宝塔面板也有supervisor的插件
那我们就用宝塔面板的插件吧
贴一个宝塔官网对插件的教程,非常粗略
https://www.bt.cn/bbs/thread-34611-1-1.html
安装插件
在宝塔面板的商店里搜索安装即可
创建守护任务
打开插件的设置页面,我们点按钮新增一个任务
可以看到这里面要我们一共填的几项
分别是任务名称、运行的用户、运行目录、启动命令
名称
随便起一个
用户
根据你守护的进程来决定,我们这里守护的是宝塔的nginx,所以一般用www-data这个用户就可以
如果不知道用什么用户可以选root一般都是没问题的
运行目录
一般选守护的进程的运行目录就好
这里选宝塔面板的nginx的目录 /www/server/nginx/sbin/
启动命令
这里要注意一下
首先supervisor要守护的是那种,启动了以后就占住窗口无法进行其他操作的命令
也就是非daemon的方式运行
如果启动了就进后台了,supervisor是无法判断是不是程序还在运行,就没有办法守护的
但是nginx默认是不支持这么运行的,所以我们要修改一下nginx的默认配置文件
我们到宝塔nginx的配置界面
在main这部分加一行,然后保存重载配置并重启就行啦
daemon off;
然后我们保存一下新增的supervisor配置,然后点一下启动
这里贴一下supervisor生成的配置文件,不用宝塔插件直接安装的话用这个文件也是一样的效果
[program:nginx]
command=/www/server/nginx/sbin/nginx
directory=/www/server/nginx/sbin/
autorestart=true
startsecs=3
startretries=3
stdout_logfile=/www/server/panel/plugin/supervisor/log/nginx.out.log
stderr_logfile=/www/server/panel/plugin/supervisor/log/nginx.err.log
stdout_logfile_maxbytes=2MB
stderr_logfile_maxbytes=2MB
user=root
priority=999
numprocs=1
process_name=%(program_name)s_%(process_num)02d
测试
稍等下就可以看到刚加的守护已经在运行了
我们手动stop一下nginx
再查看nginx的状态发现nginx立刻被拉了起来,还是正常运行的状态
就说明一切已经大功告成啦
最后
supervisor是一个非常强大的软件,宝塔面板也是开发了直观配置的插件
大家可以好好利用它好好监控或守护你想要的程序