Loading

Nginx常用命令

这边我将Nginx的命令分为两块,一块是Nginx的命令行命令,主要用来查看Nginx的安装信息,帮助信息等。还有一块就是Nginx的运维命令,主要用来启动关闭服务。

命令行命令

Nginx的命令行参数比较少,我们可以使用以下命令查看Nginx支持的命令:

/var » nginx -h                  
nginx version: nginx/1.17.2
Usage: nginx [-?hvVtTq] [-s signal] [-c filename] [-p prefix] [-g directives]

Options:
  -?,-h         : this help
  -v            : show version and exit
  -V            : show version and configure options then exit
  -t            : test configuration and exit
  -T            : test configuration, dump it and exit
  -q            : suppress non-error messages during configuration testing
  -s signal     : send signal to a master process: stop, quit, reopen, reload
  -p prefix     : set prefix path (default: /usr/local/Cellar/nginx/1.17.2/)
  -c filename   : set configuration file (default: /usr/local/etc/nginx/nginx.conf)
  -g directives : set global directives out of configuration file

下面分别对这些参数做下说明

  • nginx -h:查看帮助
  • nginx -v:查看nginx的版本
  • nginx -V:查看版本和nginx的配置选项
  • nginx -t:测试配置文件的正确性
  • Nginx -T: 测试配置文件,并显示配置文件(这个命令可以快速查看配置文件)
  • nginx -q:测试配置文件,但是只显示错误信息
  • nginx -s:发送信号,下面详细介绍
  • nginx -p:设置前缀
  • nginx -c:设置配置文件
  • nginx -g:附加配置文件路径

运维命令

运维命令主要用于对Nginx服务的启动、重启和停止等。Nginx可以接收的信号有:

信号 作用
TERM或INT 快速停止Nginx服务
QUIT 平缓停止Nginx服务
HUP 使用新的配置文件启动进程,之后平缓停止原有进程,“平滑重启”的功能
USR1 重新打开日志文件,常用于日志切割
USR2 使用新版本的Nginx文件启动服务,之后平缓停止原有进程,“平滑升级”的功能
WINCH 平缓停止worker进程,用于Nginx服务器平滑升级
kill SIGNAL PID
或者
nginx -s [option]

服务启动

# nginx
# 当然我们可以只用-c选项制定配置文件,不指定的话就是使用默认的配置
# nginx -c [path]

直接运行nginx的二进制文件,没有报错则表明服务已经启动了。可以使用ps命令查看进程。

服务停止

停止nginx服务的方法有很多,建议使用下面的第一和第二种。

# 立即停止
# nginx -s stop 
或者
# 平滑停止
# nginx -s quit
或者
# kill TERM | INT | QUIT PID
或者(不建议这么停止服务)
# kill -9 PID

服务重启

更改Nginx服务器的配置和加入新模块后,如果希望当前的Nginx服务应用新的配置或使新模块生效,就需要重启Nginx服务。当然我们可以先关闭Nginx服务,然后使用新的Nginx配置文件重启服务。

这里主要介绍Nginx服务的平滑重启。平滑重启是这样一个过程:Nginx服务进程接收到信号后,首先读取新的Nginx配置文件,如果配置语法正确,则启动新的Nginx服务,然后平缓关闭旧的服务进程;如果新的Nginx配置有问题,将显示错误,仍然使用旧的Nginx进程提供服务。

# 平滑重启服务
# nginx -s reload
或者
# kill HUP PID

服务平滑升级

平滑升级是指:当需要将正在运行中的Nginx升级、添加/删除服务器模块时,可以在不中断服务的情况下,使用新版本、重编译的Nginx可执行程序替换旧版本的可执行程序。

平滑升级的过程是这样的,Nginx服务接收到USR2信号后,首先将旧的nginx.pid文件(如果在配置文件中更改过这个文件的名字,也是相同的过程)添加后缀.oldbin,变为nginx.pid.oldbin文件;然后执行新版本Nginx服务器的二进制文件启动服务。如果新的服务启动成功,系统中将有新旧两个Nginx服务共同提供Web服务。之后,需要向旧的Nginx服务进程发送WINCH信号,使旧的Nginx服务平滑停止,并删除nginx.pid.oldbin文件。在发送WINCH信号之前,可以随时停止新的Nginx服务。

为了实现Nginx服务器的平滑升级,新的服务器安装路径应该和旧的保持一致。因此建议用户在安装新服务器之前先备份旧服务器。如果由于某种原因无法保持新旧服务器安装路径一致,则可以先使用以下命令将旧服务器的安装路径更改为新服务器的安装路径:

nginx -p newInstallPath

其中,newInstallPath为新服务器的安装路径。之后,备份旧服务器,安装新服务器即可。做好准备工作以后,使用以下命令实现Nginx服务的平滑升级:

nginx -g USR2

通过ps -ef | grep nginx查看新的Nginx服务启动正常,启动正常以后再使用以下命令

nginx -g WINCH

WINCH信号用于发送平滑停止旧服务信号。这样就在不停止提供Web服务的前提下完成了Nginx服务器的平滑升级。

posted @ 2020-08-21 11:38  程序员自由之路  阅读(24765)  评论(0编辑  收藏  举报