人们不是嘲笑你的梦想
他们嘲笑的是你的实力

supervisor守护nginx,以宝塔面板插件为例

前言

最近有个国内机反代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是一个非常强大的软件,宝塔面板也是开发了直观配置的插件

大家可以好好利用它好好监控或守护你想要的程序

未经允许不得转载:四四的军火库 » supervisor守护nginx,以宝塔面板插件为例