Permission denied 接口报错解决,nginx配置

Permission denied 接口报错解决,nginx配置

web页面报错:
在这里插入图片描述
在这里插入图片描述
postman报错:
在这里插入图片描述

1、日志

业务需要使用支持https域名反向代理非http域名,在使用代理域名访问被代理资源时打不开情况。

参看nginx错误日志信息:

2022/11/02 14:27:12 [crit] 46339#0: *25 open() "/usr/local/nginx/proxy_temp/2/00/0000000002" failed (13: Permission denied) while reading upstream, client: 10.37.7.21, server: front_end, request: "POST /*/** HTTP/1.1", upstream: "url", host: "ip:port", referrer: "http://ip:port/"

2、原因分析

从错误信息来看,nginx是在写代理 “临时文件” proxy_temp下文件时候出现了权限不足Permission denied。

#user  nobody;
http {
    include       mime.types;
    default_type  application/octet-stream;
    client_max_body_size 100M;
    server {
    location /dhlogin {
         root /usr/local/nginx/html/donghuan;
            index  index.html index.htm;
         try_files $uri $uri/ /index.html;  
    }
    }
}

(1)项目nginx没有配置:proxy_temp_file_write_size属性。

当访问资源信息超过该参数设置的大小时,nginx会先将文件写入临时目录(nginx安装目录下/proxy_temp目录),所以这里我们可以配置该属性重启nginx解决问题。

(2)#user nobody;

第一个不是问题的完整解决方法,因为返回值大小不是固定不变的,不能一味的改大此配置,所以根本上解决还要去解决无权限问题。

查看nginx目录下用户权限:cd /usr/local/nginx,发现 proxy_temp 文件用户为 root权限

[root@iZxpl4sxxnloovZ nginx]# ll
drwxr-xr-x  7 root   root   4096 Oct 21 14:18 conf
drwxr-xr-x  2 root   root   4096 Feb 13  2020 html
drwxr-xr-x  2 root   root   4096 Nov 23  2020 logs
drwx------ 12 nobody root 4096 Jul  7  2020 proxy_temp
drwxr-xr-x  2 root   root   4096 Dec 28  2020 sbin

产看启动nginx用户:ps -elf | grep nginx , 进程worker 是nobody用户

5 S root      8886     1  0  80   0 - 12248 sigsus Oct12 ?        00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
5 S nobody   11291  8886  0  80   0 - 12805 ep_pol 14:52 ?        00:00:00 nginx: worker process
0 R root     13460  6571  0  80   0 - 28179 -      15:24 pts/0    00:00:00 grep --color=auto nginx

3、解决方法

(1)修改proxy_temp_file_write_size限制大小,避免写入临时文件

(2)修改proxy_temp目录用户权限和启动nginx worker权限一致,重启nginx: nginx -s reload

chown -R nobody:nobody /usr/local/nginx/proxy_temp

公司环境未出现此问题是修改了proxy_temp目录权限,这也是一种解决方式,

如下所示:

[root@localhost nginx]# ll 
drwx------. 2 nobody root 6 9月 26 11:26 client_body_temp 
drwxr-xr-x. 2 root root 4096 10月 27 12:45 conf 
drwx------. 2 nobody root 6 7月 28 2021 fastcgi_temp 
drwxr-xr-x. 13 root root 4096 9月 6 13:54 html 
drwxr-xr-x. 2 root root 58 8月 5 16:43 logs 
drwx------. 12 nobody root 96 7月 29 2021 proxy_temp 
drwxr-xr-x. 2 root root 19 7月 28 2021 sbin 
drwx------. 2 nobody root 6 7月 28 2021 scgi_temp 
drwx------. 2 nobody root 6 7月 28 2021 uwsgi_temp

原文地址:https://www.ynqj.love/article?id=3

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值