当前位置:   article > 正文

Permission denied 接口报错解决,nginx配置_permission denied: 'temp

permission denied: 'temp

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/"
  • 1

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

(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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

产看启动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
  • 1
  • 2
  • 3

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
  • 1

公司环境未出现此问题是修改了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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/179354
推荐阅读
相关标签
  

闽ICP备14008679号