结论

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

nginx进程所属用户问题讨论的更多相关文章

  1. nginx进程属主问题讨论

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6107096.html 转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点,如 ...

  2. Nginx-->基础-->理论-->nginx进程模型

    一.nginx的进程模型基础 如上图,是nginx的基本进程模型. 1.nginx的master进程与worker进程关系 nginx的master进程负责worker进程的管理,包括创建worker ...

  3. 【学习笔记】启动Nginx、查看nginx进程、查看nginx服务主进程的方式、Nginx服务可接受的信号、nginx帮助命令、Nginx平滑重启、Nginx服务器的升级

     1.启动nginx的方式: cd /usr/local/nginx ls ./nginx -c nginx.conf 2.查看nginx的进程方式: [root@localhost nginx] ...

  4. Linux下的进程类别(内核线程、轻量级进程和用户进程)--Linux进程的管理与调度(四)

    本文中出现的,内核线程,轻量级进程,用户进程,用户线程等概念,如果不太熟悉, 可以参见 内核线程.轻量级进程.用户线程三种线程概念解惑(线程≠轻量级进程) Linux进程类别 虽然我们在区分Linux ...

  5. 转载:2.1 运行中的Nginx进程间的关系《深入理解Nginx》(陶辉)

    原文:https://book.2cto.com/201304/19624.html 在正式提供服务的产品环境下,部署Nginx时都是使用一个master进程来管理多个worker进程,一般情况下,w ...

  6. 一次docker中的nginx进程响应慢问题定位记录

    有个ft测试的环境,其中nginx使用docker发布的.测试用例是curl的时候,没有获得nginx的响应. docker ps CONTAINER ID IMAGE COMMAND CREATED ...

  7. 设置NGINX进程分配至多核CPU提升性能

    Nginx 配置文件 nginx.conf 首先需要找到 Nginx 的配置文件 nginx.conf 才能进行下面的操作,在LNMP一键安装包默认配置下,nginx.conf 存放在/usr/loc ...

  8. Nginx学习——Nginx进程间的通信

    nginx进程间的通信 进程间消息传递 共享内存 共享内存还是Linux下提供的最主要的进程间通信方式,它通过mmap和shmget系统调用在内存中创建了一块连续的线性地址空间,而通过munmap或者 ...

  9. 【Nginx】处理用户请求

    实际处理请求的方法ngx_http_mytest_handler(在配置配置项的回调方法中被调用(用于解析配置项))将接收一个ngx_http_request_t类型的参数,返回一个ngx_int_t ...

随机推荐

  1. 【docker专栏3】docker基础概念-容器、镜像以及引擎组成部分

    一.docker镜像与容器 docker镜像是一个可执行的静态独立软件包,包含打包程序代码和软件运行环境等文件.如:代码.运行时库.环境变量和配置文件等都包含在其中.容器是镜像的运行时状态(镜像中的软 ...

  2. MySQL经典50题

    1.查询01课程比02课程成绩高的学生的信息及课程分数 #1.1查询01课程与02课程的课程表: select student_id, score as c1_score from score whe ...

  3. NGINX屏蔽垃圾爬虫

    if ($http_user_agent ~* (80legs.com|Abonti|AcoonBot|Acunetix|adbeat_bot|AddThis.com|adidxbot|ADmantX ...

  4. 如何用空气质量查询API接口进行快速开发

      空气质量的好坏反映了空气污染程度,它是依据空气中污染物浓度的高低来判断的.空气污染是一个复杂的现象,在特定时间和地点空气污染物浓度受到许多因素影响.来自固定和流动污染物的人为污染物排放大小是影响空 ...

  5. 零基础学Java(7)大数

    大数 如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中两个很有用的类:BigInteger和BigDecimal.这两个类可以处理包含任意长度数字序列的数值.BigInte ...

  6. Template -「平衡树」

    Fhq-Treap. // Fhq-Treap const int MAXN = 1e5 + 5; struct Fhq_Treap { #define Lson Tr[p].l #define Rs ...

  7. net core 3.1使用identityServer登录时signin-oidc报Correlation failed的解决方法

    此问题全网找了很久,也困扰了我很久,始终没有找到解决方法.今天结合网上其他问题的帖子,自己研究的半天,终于找到了这个解决方法,经亲自测试可行.欢迎大牛指导指正. 有时客户收藏的系统地址是认证端的,然后 ...

  8. ServerlessBench 2.0:华为云联合上海交大发布Serverless基准测试平台

    摘要:华为云联合上海交大重磅推出ServerlessBench 2.0,为社区提供涵盖12类基准测试用例.新增5大类跨平台测试用例.4大类关键特性指标.且多平台兼容的Serverless开放基准测试集 ...

  9. nodejs学习总结02

    response对象常用的API #response对象 response  对象类型<http.ServerResponse> response对象常用成员:response.write ...

  10. cmd命令行工具

    在windows下进行python开发,需要经常使用cmd命令行工具.打开命令行工具有很多种方法,最简单的就是win键+R键弹出运行窗口,然后输入cmd, 就会打开下面这样的窗口. 不同版本,可能配色 ...