0%
supervisor使用#03#部署nginx的方法

本文记录使用supervisor部署nginx的方法。

子进程配置文件

1
2
3
4
5
6
7
8
9
10
11
12
[program:nginx]
command=/usr/sbin/nginx -g "daemon off;master_process on;"
autostart=true
autorestart=true
startretries=5
numprocs=1
startsecs=0
process_name=%(program_name)s_%(process_num)02d
stderr_logfile=/var/log/supervisor/%(program_name)s_stderr.log
stderr_logfile_maxbytes=10MB
stdout_logfile=/var/log/supervisor/%(program_name)s_stdout.log
stdout_logfile_maxbytes=10MB

注意:nginx的启动命令一定要加上 daemon off 属性,使得nginx不启用其后台守护进程,而把前台进程交给supervisor管理。

部署方法

第一步,如果nginx已用systemd管理,我们首先将nginx从systemd中失效和停止。

使用如下命令失效nginx的管理:

1
$ sudo systemctl disable nginx.service 

执行过程如下:

使用如下命令停止nginx:

1
$ sudo systemctl stop nginx.service 

执行过程如下:

第二步,将上述子进程配置文件(点击下载),保存到服务器 /etc/supervisor/conf.d 目录下,名称可为 nginx.conf。

使用如下命令生效supervisor的监控:

1
$ sudo supervisorctl update

启动过程如下图所示:

第三步,我们验证下supervisor是否可以自动重启nginx,用kill所有nginx进程的方法来模拟崩溃: