为什么nginx进程与用户nobody运行

我试图设置nginx来运行我的一个rails应用程序,当看看ps -e | grep nginx输出时 ps -e | grep nginx ,我意识到nginx工作进程与用户nobody运行。

有没有原因,他们没有运行www数据?

有没有原因,他们没有运行www数据?

是。 您很可能没有在您的nginxconfiguration中指定用户

用户指令: http : //nginx.org/en/docs/ngx_core_module.html#user

 syntax: user user [group]; default: user nobody nobody; context: main 

如何运行nginx作为特定的用户?

您可以在nginxconfiguration中指定运行nginx的用户/组。

这是一个nginxconfiguration可能的样子(注意用户指令):

 pid /path/to/nginx.pid; user www-data www-data; worker_processes 1; events { worker_connections 1024; # usually 1024 is a good default } http { # more code goes here } 

只需更新你的configuration,然后重新加载或重新启动nginx,你应该很好去。

当然,你应该select最适合你的系统的用户,在Debian / Ubuntu中默认有www-data,所以这是一个明智的select。

主进程以root身份运行,然后nginx将setuid() / setgid()USER / GROUP 。 如果没有指定GROUP ,则nginx使用与USER相同的名称。

默认情况下,它是nobody用户和nobody或nogroup组,或者是./configure脚本中的--user=USER--group=GROUP

您可以编辑nginx.conf并将set user to www www;