浅析nginx -s reload与service nginx restart区别及linux下nginx加载配置文件异常提示invalid PID number in "/run/nginx.pid"问题解决
1、语法:nginx -s signal。signal 的值如下:
stop:fast shutdown,快速的停止nginx
quit:graceful shutdown,不再接受新的请求,等正在处理的请求出完成后在进行停止(优雅的关闭)
reload:reloading the configuration file,重新加载配置文件
reopen:reopening the log files,重新写入日志文件
2、区别:
nginx -s reload (热重载):Nginx 服务不会终止,使用主进程检查配置,如果配置文件语法正确,则主进程会启动一个新的工作进程处理新来的请求。主进程发送消息给原来的工作进程,通知旧的进程不在接受请求,处理完现有的请求后退出(优雅退出);如果语法不正确,则继续使用旧的进程继续处理请求
service nginx restart(重启):该条命令的执行过程如下,nginx -s stop -> nginx 先将 Nginx 快速的停止(等同于 service nginx stop),然后在执行启动命令(等同于 service nginx start),启动的时候会造成短暂的服务中断;如果配置文件语法错误,那问题就大了,有可能会造成更长时间的中断,有可能会造成很大的宕机。
3、nginx -s reload (reload 命令很重要)
// nginx常用命令
cd usr/local/nginx/sbin
./nginx // 启动
./nginx -s stop // 停止
./nginx -s quit // 安全退出
./nginx -s reload // 重新加载配置文件
ps aux|grep nginx // 查看nginx进程
./nginx -s reload :当我们更改了配置文件,我们都要重新加载我们的配置文件,也就是reload。以前都是 restart 重启,实际上 reload 是更合适的。
/usr/local/nginx/sbin/nginx -s reload。用过多次这条命令,一直以为是重启Nginx,今天有幸看了下Nginx官方文档介绍这条命令
Nginx 服务不会终止,主进程检查配置,应用配置的过程。主进程会启动一个新的工作进程处理新来的请求。主进程发送消息给老的工作进程,通知老的进程不在接受请求,处理完现有的请求后退出(优雅退出)
4、注意事项
如果是正式环境需要修改配置文件时,先把原有的配置文件备份一下,然后在进行修改;修改完成后先通过 nginx -t 检查一下配置文件是否有错误,如果没有的话再进行 nginx -s reload 热加载。
如果要求停止 Nginx 或者是 释放 Nginx 资源时,我们才使用 service nginx stop 或 service nginx restart 命令,否则一般都是用 nginx -s reload。
5、Nginx 负载均衡 - linux下nginx加载配置文件异常处理,提示invalid PID number in “/run/nginx.pid“问题解决
问题背景:执行 nginx -s reload
加载配置文件的时候报错了。提示 nginx: [error] invalid PID number "" in "/run/nginx.pid"
错误原因:就是 "/run/nginx.pid"
文件下对应的 nginx 主进程号不对了。通过查看 "/run/nginx.pid"
看到为空了,或者不是当前的主进程号了。
解决方案1:通过 ps aux | grep 'nginx: master process'
查询出主进程号,填到 "/run/nginx.pid"
文件里就行了。
文件视图如下,里面就一个进程号。(我的该文件之前里面是 空的,现在需要填上上步获取的主进程号即可)
解决方案2:通过 nginx -t 可以查看配置文件的地址。
执行下 nginx -c /etc/nginx/nginx.conf 重新设置下配置文件就好了,"/run/nginx.pid" 文件里的主进程号也被同步进来了。
如果执行过程有如下问题:
说明 nginx 配置文件里使用的端口号被其它程序占用了,此时可以修改配置文件里的端口号或杀掉使用该端口的进程。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2018-02-28 浅析Number.EPSILON及JavaScript中的数值误差问题
2018-02-28 如何解决跨域导致<a>标签下载文件重命名失败download无效的问题以及解决如何使pdf文件在浏览器里面直接下载而不是打开