【网络】Nginx proxy_temp failed 13: Permission denied

出现的问题

通过nginx代理服务器对后端tomcat服务器进行访问,可以看到nginx服务的accees.log有访问记录, tomcat的catalina.out有访问记录。然而前端拿不到某些静态文件,导致整个页面没有办法被显示。

定位问题
  1. 通过tomcat服务器IP和相应端口 [tomcat VM ip]:[tomcat port]是可以访问的后端并且渲染前端的
  2. 通过另外一条路: waf -> lb -> tomcat server 也是可以正常访问的
  3. nginx error.log中有 open() "/nginx_dir/proxy_temp/xxx/xxxx/xxxxxxxxxxx" failed (13: Permission denied) while reading
    由此我们可以定位错误可能是源于nginx的缓存文件夹无法被nginx访问
解决问题

首先查看 ps aux | grep "nginx: worker process"当前nginx的用户是谁
然后查看 ll /nginx_dir/proxy_temp文件夹下文件&&文件夹的用户,大概率会发现里面文件&文件夹权限为root等启动nginx的用户无权限的文件&文件夹
最后更改文件或文件夹所属用户&组 chown -R

测试

在浏览器端重新访问发现访问正常。

思考

有两个点:

  1. nginx的缓存文件无权限访问后,nginx没有绕过缓存文件并向代理后端发送请求。导致卡死。
  2. 如果禁止掉nginx的缓存应该也是可以的
参考

https://serverfault.com/questions/235154/permission-denied-while-reading-upstream

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值