【问题标题】:nginx server cannot restart using service nginx startnginx 服务器无法使用 service nginx start 重新启动
【发布时间】:2016-11-03 23:36:49
【问题描述】:

这是我的错误日志

2016/07/01 07:38:17 [emerg] 30759#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 07:48:02 [emerg] 30806#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 07:48:44 [emerg] 30832#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 08:07:36 [emerg] 30913#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 08:07:44 [emerg] 30939#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 08:07:49 [emerg] 30964#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 08:13:54 [emerg] 31138#0: getpwnam("nginx") failed in /etc/nginx/nginx.conf:5
2016/07/01 09:52:49 [emerg] 31735#0: getpwnam("nginx") failed

这是我的 nginx.conf

worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
    listen       80 default_server;
    listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
        }
    error_page 404 /404.html;
            location = /40x.html {
        }

    error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
}

【问题讨论】:

    标签: nginx centos


    【解决方案1】:

    如果您从源代码编译 Nginx,您可能会在编译时指定用户和组标志。

    如果是这种情况,您需要确保在您尝试启动 Nginx 时用户确实存在。

    如何修复 getpwnam(“nginx”) 失败

    解决这个问题很容易,只需通过发出以下命令创建指定的用户(在本例中为“nginx”):

    用户添加 nginx

    如果您希望创建没有主目录的用户,只需添加 --no-create-home 标志,如下所示:

    useradd --no-create-home nginx

    【讨论】:

      【解决方案2】:

      最后我自己找到了解决办法。

      我使用了nginx -t,这表明我的代码中没有任何语法错误。

      然后我用了

      user nobody; // in my nginx.conf
      

      这解决了我的问题

      【讨论】:

        【解决方案3】:

        您的 nginx.conf 缺少用户指令 http://nginx.org/en/docs/ngx_core_module.html#user

        如果这不起作用,命令“journalctl -xe”会输出什么?

        【讨论】:

        • 这样的问题最好直接评论OP的问题来完成
        猜你喜欢
        • 2019-05-29
        • 1970-01-01
        • 2020-05-03
        • 2018-04-20
        • 2022-10-22
        • 2015-03-01
        • 2017-04-23
        • 2016-02-16
        • 2018-08-15
        相关资源
        最近更新 更多