Nginx重启、重载、停止命令,nginx -s reload
前言
改了 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。
总结
日常操作流程:
- 改配置
nginx -t检查语法nginx -s reload重载- 测试网站是否正常
记住: 生产环境改配置,永远用 reload,不要用 restart,不中断服务。
遇到问题加QQ23979811 协助处理