nginx 启动、停止、关闭

使用3A服务器搭建的centos系统安装nginx

教程在我的往期博客中

1,nginx指定配置文件

 

/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf

1

-c参数 指定了要加载的nginx配置文件路径

1,从容停止Nginx:

kill -QUIT主进程号  

2,快速停止Nginx:

kill -TERM主进程号  

 

3,强制停止Nginx:

kill -9主进程号

 

2,使用信号管理nginx的master、worker进程

立刻停止服务:

nginx -s stop或者

kill -SIGTERM $(cat /data/services/nginx/logs/nginx.pid)

 

优雅停止服务:

nginx -s quit或者

kill -QUIT $(cat /data/services/nginx/logs/nginx.pid)

 

重载配置文件(master不退出,重新加载worker进程):

nginx -s reload

kill -SIGHUP $(cat /data/services/nginx/logs/nginx.pid)

 

重新开始记录日志文件:

nginx -s reopen或者

kill -USR1 $(cat /data/services/nginx/logs/nginx.pid)

 

热升级nginx服务(主要是二进制nginx文件):

kill -USR2 old_master_process #将新的请求过度到新的master进程中去

kill -WINCH old_master_process #优雅关闭所有work进程

 

nginx reload流程

(1)向master进程发送HUP信号(reload命令)

(2)master进程校验配置文件语法是否正确

(3)master进程打开新的监听端口

(4)master进程用新配置启动新的worker子进程

(5)master进程向老worker子进程发送QUIT信号

(6)老worker进程关闭监听句柄,处理完当前连接后结束进程

 

nginx热升级流程

(1)将旧nginx文件换成新nginx文件

(2)向master进程发送USR2信号

(3)master进程修改pid文件名,加后缀.oldbin

(4)master进程用新nginx文件启动新master进程

(5)向老master进程发送WINCH信号,关闭老worker

(6)回滚:向老master发送HUP,向新master发送QUIT

3,当用systemctl启动服务时,报start-pre时,可以考虑下/var/tmp是否存在

nginx.service failed to run‘start-pre’

 


启动脚本:

 

cat  >> nginx.service << EOF

[Unit]

Description=nginx web server

Documentation=http://nginx.org/en/docs/

After=network.target remote-fs.target nss-lookup.target

 

[Service]

Type=forking

User=root

Group=root

PIDFile=/usr/local/nginx/logs/nginx.pid

ExecStartPre=/usr/local/nginx/sbin/nginx  -t -c /usr/local/nginx/conf/nginx.conf

ExecStartPre=/usr/local/nginx/sbin/nginx  -t

ExecStart=/usr/local/nginx/sbin/nginx

ExecReload=/usr/local/nginx/sbin/nginx -s reload

KillSignal=SIGQUIT

PrivateTmp=true

 

[Install]

WantedBy=multi-user.target

EOF

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务