zoukankan      html  css  js  c++  java
  • nginx进程所属用户问题讨论

    结论

    1,在非root账户下启动时,nignx的master和worker进程的用户都将是这个账户,
    2,在root账户下启动时 nignx的master进程是用户是root,worker的用户在conf已配置用户的情况下,owner是配置的用户,否则将是nobody,而且也可能导致nginx的一些文件的owner也是nobody。

    问题探讨

    A主机安装NFS server,共享出来某些目录给B主机使用
    A主机中的配置

    /usr/local/nginx/html/ *(insecure,rw,sync,no_root_squash)
    

    B主机安装有NFS clinet 和nginx,还有其他应用

    B主机挂载A主机提供的共享目录

    mount -t nfs -o nolock,vers=4 10.0.0.243:/usr/local/nginx/html/ /usr/java/tomcat-7.0.92/webapps/ROOT/kjactive/appimg
    

    B主机安装的nginx,配置文件中关于用户的配置是注释状态

    #user  nobody;
    

    进程用户如下:

    root      12345      1  0 Jan17 ?        00:00:00 nginx: master process ./nginx
    nobody   755782  12345  0 Jun23 ?        00:02:26 nginx: worker process
    nobody   755783  12345  0 Jun23 ?        00:28:39 nginx: worker process
    

    B主机上安装有后台应用,通过B主机上的nginx可以正常访问,然后在后台上传图片,实际存储到A主机的共享目录下,存储的图片权限是:

    -rw-r----- 1 root root  21126 Jul  6 16:43 202107061643095807470.png
    

    但是通过nginx却无法访问图片,提示:403 无权限

    分析

    使用root用户启动的nginx,但是nginx配置文件中关于user 的配置是注释状态,这样的情况正好对应开头的结论2。master进程的用户是root,但是worker进程用户是nobody,再联想到上传的图片权限是"-rw-r-----",那肯定就无法访问图片了。

    解决办法也是根据结论2,修改nginx配置文件中关于user的配置,修改成:user root;,这样一来,master进程和worker进程的用户都是root,这样就能访问到图片了。

    root      12345      1  0 Jan17 ?        00:00:00 nginx: master process ./nginx
    root     605188  12345  0 16:50 ?        00:00:01 nginx: worker process
    root     605189  12345  0 16:50 ?        00:00:00 nginx: worker process
    
  • 相关阅读:
    pat 1044 Shopping in Mars
    PAT1017 Queueing at Bank
    PAT1023 Have Fun with Numbers
    PAT1020
    谈谈软件测试职业规划
    测试工程师的一些思考
    浅谈性能测试
    软件测试价值提升之路- 第三章"拦截缺陷 "读书笔记
    软件测试价值提升之路- 第二章"价值实现的起点"读书笔记
    UI 自动化框架设想
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/14977799.html
Copyright © 2011-2022 走看看