赞
踩
业务需要使用支持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/"
从错误信息来看,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
(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
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。