项目场景:
前后端分离,前端使用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}'

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

被折叠的 条评论
为什么被折叠?



