美文网首页
nginx reload无效解决方法

nginx reload无效解决方法

作者: 秋_落 | 来源:发表于2019-06-07 14:43 被阅读0次

    文章发布地址:https://blog.qiuluo.xin/2018/12/05/nginx-reload%E6%97%A0%E6%95%88%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95/

    一、 问题出现

    更改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
    
    image

    错误原因

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

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

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

    二、 解决方案

    1. 创建nginx.service.d目录

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

    mkdir /etc/systemd/system/nginx.service.d
    
    1. 打印数据到文件

    执行下面的命令

    printf "[Service]\nExecStartPost=/bin/sleep 0.1\n" > /etc/systemd/system/nginx.service.d/override.conf
    
    1. 重新加载daemon服务
    systemctl daemon-reload
    

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

    1. 重启nginx服务
    systemctl restart nginx
    
    1. 测试

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

    发现问题已解决

    相关文章

      网友评论

          本文标题:nginx reload无效解决方法

          本文链接:https://www.haomeiwen.com/subject/eewmxctx.html