nginx的工作模式
nginx是一个多进程/多线程高性能的web服务器,再Linux系统中,nginx启动后会以后台守护进程(daemon)的方式去运行,后台进程包含一个master进程和多个worker进程
Master主进程主要管理worker进程
主要作用:读取并验证配置信息,管理真正服务的worker进程,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程,
master进程不会对用户请求提供服务,而用户的请求则是worker进程来响应的,
nginx是通过信号来控制,比如关闭,重启等去控制nginx进程,nginx信号是属于nginx进程间的通信的一种机制,比如master主进程控制多个worker子进程也是通过信号控制的,
3.1启动命令后面加上参数
nginx -s reload // 修改配置后重新加载生效
nginx -s reopen // 重新打开日志文件
nginx -s stop // 快速停止nginx
nginx -s quit // 完整有序的停止nginx
3.2发送一个信号量
nginx支持一下几种信号选项
TERM,INT: 快速关闭
QUIT :从容关闭(优雅的关闭进程,即等请求结束后再关闭)
HUP :平滑重启,重新加载配置文件 (平滑重启,修改配置文件之后不用重启服务器。直接kill -PUT 进程号即可)
USR1 :重新读取日志文件,在切割日志时用途较大(停止写入老日志文件,打开新日志文件,之所以这样是因为老日志文件就算修改的文件名,由于inode的原因,nginx还会一直往老的日志文件写入数据)
USR2 :平滑升级可执行程序 ,nginx升级时候用
WINCH :从容关闭工作进程
3.3具体用法
kill信号选项nginx的主进程号
kill -HUP 4873
Kill -信号控制 cat /xxx/path/log/nginx.pid