nginx由一个master进程和若干worker进程组成,master进程主要用于读取配置文件和管理worker进程.worker进程负责处理请求。nginx基于事件模型并且能够根据操作系统的特性高效的利用worker进程处理请求。worker进程的数量在配置文件中定义,也可以通过指定的配置文件来定义其数量,或者自动根据CPU核心数确定其数量。
nginx以及相关模块的工作方式通过配置文件来指定。默认情况下,配置文件命名为nginx.conf,位于/usr/local/nginx/conf 或 /etc/nginx 或 /usr/local/etc/nginx 路径下。
nginx的启动非常简单,直接执行usr/local/nginx/sbin/目录下的可执行文件即可 ./nginx
一旦启动了nginx,就可以通过nginx -s [signal]命令的方式来控制nginx.其中[signal]可以为如下的命令:
stop
— 快速停止quit
— 平滑关闭reload
— 重新加载配置文件reopen
— 重新打开日志文件
nginx -s quit
当配置文件被更改,只有当nginx被重启或者接收到重载配置文件的命令时新的配置才会生效,为了更改配置文件后生效,可以使用
nginx -s reload
一旦master进程接收到重载配置文件的信号,它首先会检查新的配置文件是否有语法错误,如果没有错误,master进程将会采用新的配置,并启动新的worker进程,同时通知旧的worker进程让他们停止工作。否则,若配置文件存在错误,那么master进程仍然使用旧的配置,并且旧的worker进程将继续保持工作。一旦master进程通知worker进程停止工作,worker进程首先会停止接收链接,然后处理完当前的所有请求,之后再exit,结束执行。
也可以通过linux下的kill工具直接给nginx的master进程发送信号,默认nginx进程ID写在/usr/local/nginx/logs目或/var/run下的nginx.pid文件中,例如master进程ID为1296,那么向nginx发送QUIT信号希望它平滑关闭,可以执行
kill -s QUIT 1628
也可通过ps命令,查找master进程的进程ID
ps -ax | grep nginx