«

Nginx重启、重载、停止命令,nginx -s reload

时间:2026-10-7 07:35     作者:emer     分类: 无


前言

改了 Nginx 配置,怎么让它生效?很多新手直接重启服务器,其实没必要。Nginx 有专门的重载命令,不中断服务。

常用命令汇总

操作 命令
重载配置(不中断) nginx -s reload
停止 Nginx nginx -s stop
优雅停止 nginx -s quit
检查配置 nginx -t
重启 Nginx systemctl restart nginx
查看状态 systemctl status nginx

重载配置(最常用)

改完配置,用这个:

nginx -s reload

好处: 不中断现有连接,新连接用新配置。生产环境用这个,不要直接重启。

检查配置

改完配置先检查一下语法:

nginx -t

输出 syntax is ok 才能重载。不然重载失败 Nginx 就挂了。

停止 Nginx

快速停止

nginx -s stop

直接杀进程,不管正在处理的请求。

优雅停止

nginx -s quit

等正在处理的请求完成后再停止。生产环境用这个。

重启 Nginx

用 systemctl 管理的:

systemctl restart nginx

编译安装的:

nginx -s stop
nginx

查看 Nginx 状态

systemctl status nginx

或者看进程:

ps aux | grep nginx

开机自启

systemctl enable nginx

常见坑

坑1:改了配置不生效

执行了 nginx -s reload,但配置还是老的。

原因1: 没检查配置语法,reload 失败了。

解决: 先跑 nginx -t,确认配置没问题再 reload。

原因2: 改的不是实际加载的配置文件。

解决: 用 nginx -t 确认一下加载的是哪个配置文件。

坑2:reload 后 Nginx 挂了

改了配置,reload 后网站打不开。

原因: 配置写错了,新进程起不来,老进程也退了。

解决: 赶紧回滚配置,然后 systemctl restart nginx。

预防: 改配置前先备份,改完先 nginx -t。

坑3:找不到 nginx 命令

执行 nginx: command not found。

原因: 编译安装的 Nginx 不在 PATH 里。

解决: 用完整路径:

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

坑4:reload 提示 no PID

执行 nginx -s reload 提示 no PID found。

原因: Nginx 没启动。

解决: 先启动 Nginx。

总结

日常操作流程:

  1. 改配置
  2. nginx -t 检查语法
  3. nginx -s reload 重载
  4. 测试网站是否正常

记住: 生产环境改配置,永远用 reload,不要用 restart,不中断服务。

遇到问题加QQ23979811 协助处理

标签: Nginx 运维 命令 reload 重启