gpt4 book ai didi

nginx.conf和nginx.pid的用户和权限

转载 作者:行者123 更新时间:2023-12-04 12:46:22 25 4
gpt4 key购买 nike

我正开始在以下级别查看我的NGINX error.log文件:警告...这可能是一个愚蠢的主意,当我找出发生的所有错误时,这会导致我的服务器崩溃,但是,我们很 Nerd ,这就是为什么我们在这里。

我注意到每次重新启动服务器时都会弹出[警告]和[emerg],这表明:

[warn] 8041#0: the "user" directive makes sense only if the master process runs with super-user privileges, ignored in /etc/nginx/nginx.conf:1
[emerg] 8041#0: open() "/run/nginx.pid" failed (13: Permission denied)

我的nginx.conf文件的顶部显示为:
user www-data;
worker_processes auto;
pid /run/nginx.pid;

对我来说,向我展示了一些东西。
  • 我正在使用用户www.data运行NGINX。
  • 允许的工作进程数会自动调整。
  • 我的PID文件/信息存储在/run/nginx.pid中。

  • 该错误告诉我NGINX没有访问/run/nginx.pid的权限,这使我看到了该文件的用户权限。
    sudo ls -la /run/nginx.pid

    揭示:
    -rw-r--r-- 1 root root 5 Jun 18 05:34 /run/nginx.pid

    然后尝试:
    ps -ef | grep nginx

    产生:
    root      5914     1  0 05:34 ?        00:00:00 nginx: master process /u
    www-data 5917 5914 0 05:34 ? 00:00:00 nginx: worker process

    抓头

    现在,有人可以告诉我为什么吗,或者是该死的NGINX如何设法创建具有根所有权的主进程,而现在工作进程进程是由www-data拥有的?

    或更重要的是,有人对我要解决的[emerg]错误有何建议?

    我的第一个想法是尝试更改/run/nginx.pid文件的所有权,并查看NGINX的喜欢程度,但是我有种感觉,即使这次是手动执行此操作,当我重新启动服务器时,我仍然会遇到同样的问题。

    我的第二个想法可能是我在NGINX中定义了我的工作进程启动的其他地方。

    谢谢。

    编辑
    /etc/systemd/system/multi-user.target.wants/nginx.service文件的内容为:
    [Unit]
    Description=A high performance web server and a reverse proxy server
    After=network.target

    [Service]
    Type=forking
    PIDFile=/run/nginx.pid
    ExecStartPre=/usr/sbin/nginx -t -q -g 'daemon on; master_process on;'
    ExecStart=/usr/sbin/nginx -g 'daemon on; master_process on;'
    ExecReload=/usr/sbin/nginx -g 'daemon on; master_process on;' -s reload
    ExecStop=/usr/sbin/nginx -s quit

    [Install]
    WantedBy=multi-user.target

    最佳答案

    我今天在Centos 7服务器上遇到了同样的错误。

    nginx.pid" failed (13: Permission denied)


    对我来说,事实证明这是SELinux的问题。我做了以下操作以使其再次起作用:
    systemctl stop nginx
    touch /var/run/nginx.pid
    chcon -u system_u -t httpd_var_run_t /var/run/nginx.pid
    systemctl start nginx
    运行
    ls -Z nginx.pid
    应该输出

    -rw-r--r--. root root system_u:object_r:httpd_var_run_t:s0 nginx.pid

    关于nginx.conf和nginx.pid的用户和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894060/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com