当前位置: 首页 > Linux

nginx用户模块详解

时间:2023-04-06 20:41:25 Linux

运行nginx后,可以指定用户。例如,静态Web服务器的文件目录中的不同用户具有不同的访问权限。使用nginx指定用户可以对该目录有读写权限。我其实很好奇如何直接指定用户,运行nginx时不需要输入密码。在网上查找资料后发现:Nginx主进程(masterprocess)会以root权限运行,然后master进程会读取/etc/nginx/nginx.conf中用户模块的配置文件,nginx将使用这个指定的用户启动一个工作进程。那为什么主进程需要用root呢?因为只有root可以监听小于1024的端口号,通常webserver使用80/443端口,这也是需要root才能运行的原因。如果要改成非root用户运行,需要改下面的文件用户和用户组,当然不能使用<1024端口。error_logaccess_logpidclient_body_temp_pathfastcgi_temp_pathproxy_temp_pathscgi_temp_pathuwsgi_temp_pathOK,具体流程运行如下图。这里可以看到nginx只有一个master进程,多个worker进程。master进程主要是读取配置文件并判断其正确性,管理worker进程。工作进程是实际处理网络请求的进程。如果主进程以root身份运行,nginx会调用setuid()/setgid()来设置用户/组。如果不指定组,那么nginx会设置与用户同名的组。默认是nobodynogroup或者安装nginx时在./configure中指定的--user=USER和--group=GROUP配置语法:语法:useruser[group];默认值:用户nobodynobody;上下文:main如果使用php如果是这样,那么您还需要编辑php-fpm.confuser-进程的Unix用户。默认“www-data”组-Unix进程组。默认"www-data"原文首发于我的github博客,欢迎关注和star!参考:[以非root用户身份运行Nginx](https://stackoverflow.com/que...如何更改NGINX用户?