nginx 请求后台接口200,但是前端报错;nginx 读写临时文件夹proxy_temp报错Permission denied

本文讲述了在前后端分离的项目中,遇到nginx请求后台接口返回200但前端报错的问题。通过分析nginx日志发现是proxy_temp目录权限不足导致。解决方案包括修改proxy_temp目录权限和将nginx运行用户从nobody更改为root,但后者可能存在安全风险。

项目场景:

前后端分离,前端使用nginx作为服务器

 


问题描述:

nginx请求后台接口成功,即所请求的接口状态为200,但是前段仍然报错,如下图:


原因分析:

1.既然请求后端接口是成功的(状态码200),说明后端接口是没有问题的

2.同时这里还有一个问题,前几分钟还是正常的,但是突然就开始不断报错,但是其他接口没有报错

3.去nginx运行或者安装目录下查找其日志文件logs,找到下面的error文件,找到请求的接口,看看报了什么错误:

2021/05/14 11:12:34 [crit] 951707#0: *267189 open() "/data/hqc2/nginx-1.18/proxy_temp/2/43/0000000432" failed (13: Permission denied) while reading upstream, request: "POST /api/cost/selectExpenseDetail HTTP/1.1"

4.可以看出nginx往临时文件夹proxy_temp写入临时文件的时候,对这个文件夹没有写的权限

5.使用以下命令查看nginx相关进程的用户账号:ps aux | grep "nginx: worker process" | awk '{print $1}'


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值