Nginx超详细的常用操作命令

本文我们来介绍下Nginx中的常用操作命令。

服务启动命令

-h help命令可以查看帮助信息
image

默认启动方式

直接执行Nginx的二进制文件即可

1
/usr/local/nginx/sbin/nginx

该方式默认会加载 /usr/local/conf/nginx.conf 配置文件

指定配置文件

也可以在启动的时候指定要加载的配置文件 -c

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

当然我们在启动的时候也可以指定pid的存储位置

1
/usr/local/nginx/sbin/nginx -g “pid /usr/local/nginx/nginx.pid;”

image
-g参数的约束条件是指定的配置项不能与默认路径下的nginx.conf中的配置项相冲突,否则无法启动。就像上例那样,类似这样的配置项:pid logs/nginx.pid,是不能存在于默认的nginx.conf中的。
另一个约束条件是,以-g方式启动的Nginx服务执行其他命令行时,需要把-g参数也带上,否则可能出现配置项不匹配的情形。例如,如果要停止Nginx服务,那么需要执行下面代码:

1
/usr/local/nginx/sbin/nginx -g "pid /usr/local/nginx/nginx.pid;" -s stop

查看服务是否启动成功

1
ps -ef | grep nginx

查看是否有对应的nginx进程
image
还可以查看对应的pid文件,可以看到对应的master进程的进程编号,表示服务启动了
image
最后nginx后默认的端口是80,这时我们能够在浏览器中访问成功也可以说明启动成功了
image

停止服务命令

查看master进程的方式

1
ps -ef | grep nginx

信号量停止

停止Nginx的方法有很多,一般是通过发送系统信号给Nginx主进程的方式来停止Nginx
语法: kill 信号量类型 master进程编号
从容停止:允许Nginx服务将当前正在处理的网络请求处理完成,但不再接收新的请求

1
kill -quit 进程编号

image
快速停止:立即停止当前Nginx服务正在处理的所有网络请求

1
kill -term 进程编号

image
执行停止命令,进程立马被干掉了

强制停止:这个得分别干掉master进程和worker进程

1
kill -9 进程编号

快速停止

上面的信号量方式停止,稍微显得麻烦点,我们需要先查看到对应的master进程编号,然后再发送对应的信号量,这时我们可以通过更简洁的方式来停止

1
/usr/local/nginx/sbin/nginx -s stop

使用-s stop可以强制停止Nginx服务。-s参数其实是告诉Nginx程序向正在运行的Nginx服务发送信号量,Nginx程序通过nginx.pid文件中得到master进程的进程ID,再向运行中的master进程发送TERM信号来快速地关闭Nginx服务。

1
2
### “优雅”地停止服务
如果希望Nginx服务可以正常地处理完当前所有请求再停止服务,那么可以使用-s quit参数来停止服务。

/usr/local/nginx/sbin/nginx -s quit

1
该命令与快速停止Nginx服务是有区别的。当快速停止服务时,worker进程与master进程在收到信号后会立刻跳出循环,退出进程。而“优雅”地停止服务时,首先会关闭监听端口, 停止接收新的连接,然后把当前正在处理的连接全部处理完,最后再退出进程。

热加载命令

如果改变了Nginx的配置文件.nginx.conf,想要重启Nginx,首先需要验证nginx.conf的语法有没有问题

1
/usr/local/nginx/sbin/nginx -t

语法验证没有问题我们就可以通过 -s reload来重新加载配置文件了

1
/usr/local/nginx/sbin/nginx -s reload

获取通过发送信号量的方式来重新加载

1
kill -hup master进程编号

好了,nginx常用的操作命令就介绍到此,相信你应该能上手操作Nginx了~