nginx reload无效解决方法

方案1:

nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

找到你的nginx.conf的文件夹目录

然后运行命令

nginx -c /usr/local/etc/nginx/nginx.conf

再运行 

nginx -s reload

重启nginx就可以了

 

 

 

 

----------------------------------------------------------------------------------------------------------------------------

方案2:

一、 问题出现

更改nginx配置文件后进行语法检测

 sudo nginx -t

结果正确, 进行nginx重启

sudo nginx -s reload

没有报错,但发现重启后新的配置没有生效

nginx依然指向旧的路径

查看nginx服务状态

sudo service nginx status
或
sudo systemctl status nginx

发现出现如下错误

nginx.service: Failed to read PID from file /run/nginx.pid: Invalid argument

 

 

 

错误原因

经过查询后发现,这个错误是因为nginx和系统之间的竞争引起的。

nginx.pid 文件是在nginx启动时创建的文件,在关闭nginx服务后会消失。

系统在nginx创建该文件前就想要访问这个文件,导致了这个错误的产生。

二、 解决方案

1.创建nginx.service.d目录

在/etc/systemd/system/目录下创建nginx.service.d文件夹

mkdir /etc/systemd/system/nginx.service.d

2.打印数据到文件

执行下面的命令

printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf

3.重新加载daemon服务

systemctl daemon-reload

这将重新运行所有生成器,重新加载所有单元文件并重新创建整个systemd依赖关系树。

4.重启nginx服务

systemctl restart nginx

5.测试

重新测试之前修改过的配置文件是否生效

发现问题已解决

 

原文地址:https://www.jianshu.com/p/64fba261005d

 
posted @ 2022-03-29 10:24  一万年以前  阅读(4246)  评论(0编辑  收藏  举报