zzxworld

Nginx 命令的使用方法和选项参考

Nginx 是一个 HTTP 反向代理服务软件,它能以较低的资源支撑大量的 Web 请求。所以也是目前主流的 Web 服务软件。它提供了一个同名的命令用来管理 Nginx 服务的启动,停止和重启操作,本文总结了这个命令的用法和选项。

nginx 命令格式

nginx [选项...]

nginx 命令示例

启动 Nginx 的命令:

nginx

停止 Nginx 的命令:

nginx -s stop

以上启动和停止 Nginx 的命令操作只建议在手动编译安装的 Nginx 上使用。如果是用 Linux 包管理工具安装的 Nginx,会自动创建相应的 Systemd 服务。这时用 Systemd 提供的管理命令来操作会更加合适:

# 启动 Nginx
systemctl start nginx

# 停止 Nginx
systemctl stop nginx

# 重新启动 Nginx
systemctl restart nginx

在修改了 Nginx 配置文件后,不要迫不及待的去操作重启,可能会存在一些语法格式或是其他原因导致的配置问题。可以先用下面的命令测试一下:

nginx -t

如果命令输出下面类似的消息,就可以放心重启了。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

重新加载 Nginx 配置:

nginx -s reload

使用一个自定义位置的 Nginx 配置文件:

nginx -c /home/zzxworld/test/nginx.conf

nginx 命令选项

选项名称 功能描述
-c file 使用一个自定义位置的 Nginx 配置文件。
-g directives 设置全局范围的配置指令。
-p prefix 设置 Nginx 主目录。默认位于 /usr/share/nginx
-s signal 给 Nginx 主进程发送信号。常用的信号名有: stop, quit, reopen, reload。这些信号名只是别名,它们各自对应了一个系统信号。stop 等于 SIGTERMquit 等于 SIGQUITreopen 等于 SIGUSR1reload 等于 SIGHUP。所以也可以直接使用相关的系统信号。Nginx 支持的系统信号可以参考后面的信号表。
-t 不运行 Nginx,只测试 Nginx 配置文件。 Nginx 会检查所有配置文件中是否存在语法等错误。
-T -t 参数类似,只测试 Nginx 配置文件,但同时会输出所有配置文件内容。
-q 在测试配置文件时不显示非错误消息。搭配 -t 选项使用时如果没有输出任何内容就代表配置测试通过。
-v 查看 Nginx 版本。
-V 查看 Nginx 版本以及编译参数信息。
-?, -h 查看命令帮助信息。

Nginx 信号

Nginx 的主进程支持以下这些信号:

信号名称 信号说明
SIGINT, SIGTERM 「粗暴的」停止 Nginx。
SIGHUP 重新加载 Nginx 配置,使用新的配置启动新的 Nginx 进程,并比较「文明的」关闭旧的 Nginx 进程。说人话就是平滑重启。
SIGQUIT 比较「文明的」停止 Nginx。
SIGUSR1 重新打开日志。
SIGUSR2 动态更新 Nginx 可执行文件。
SIGWINCH 比较「文明的」关闭 Nginx 工作进程。