nginx 404 not found错误查找
问题
通过nginx转发请求,有的时候好用,有的时候报错:404 not found。
经过定位:请求参数数据量小,访问正常;请求参数数据量大,访问异常。
架构
浏览器通过nginx获取前端代码。
浏览器前端展示,通过nginx访问 后端。
后端 通过 nginx 访问DataService。
flowchart LR浏览器 --> nginx:8001 --> 前端浏览器 --> nginx:8002 --> 后端后端 --> nginx:8003 --> DataService
后端 通过 nginx 访问DataService 报错
不是全部的请求报错,当请求的数据量达到一定规模,才会报错。
例如,选择删除一条数据,访问正常。
删除100条数据,nginx抛错:404 not found。
问题定位过程
第一次碰见这个问题,完全是懵逼状态。有的时候好用,有的时候不好用是最难的。
经过试错,发现在请求的数据量大的情况下,会报错。
更换 后端的版本,问题依旧存在。
更换 DataService 问题依旧存在。
更换 nginx,问题没了。
第一反应,是nginx的body大小限制,上网查,更改 client_max_body_size。默认为1M。
client_max_body_size 300M;
问题依旧存在。
查看 nginx的log文件:
logs/error.log
内容如下:
*3306 open() "/app/nginx/client_body_temp/000000007" failed (2:No such file or directory), client: 10.10.10.112, server:...
*3306 open() "/app/nginx/html/50x.html" failed (2:No such file or directory),
nginx 无法打开文件:/app/nginx/client_body_temp/000000007
一般无法打开文件,都是因为权限问题。
于是查看/app/nginx/client_body_temp/的权限,果然如此。
我们使用的为:onlineUser 部署,没有sudo权限。
但是测试开发人员有的时候会使用root操作服务器,例如用root启动nginx。
root操作nginx后,一些文件夹就变成root用户权限。onlineUser没有操作的权限。
我再使用onlineUser启动nginx。虽然可以正常启动但是有些目录没有权限。
nginx在参数是小数据量时候,参数都放在内存中。
当参数body的数据量变大,将会缓存到磁盘,需要创建临时文件。临时文件夹没有权限,所以创建文件失败,所以才会无法找到文件。
nginx 404 not found错误查找相关推荐
- nginx 404 403等错误信息页面重定向到网站首页或其它事先指定的页面
server { listen 80;server_name www.espressos.cn;location / { root html/www;index index.html index.ht ...
- nginx部署vue前端,刷新出现404或者500错误的解决方案
nginx部署vue前端,刷新出现404或者500错误的解决方案 参考文章: (1)nginx部署vue前端,刷新出现404或者500错误的解决方案 (2)https://www.cnblogs.co ...
- python自定义全局异常_Django 自定义404 500等错误页面的实现
在开发网站的过程中,404,500错误,是不可避免产生的. 一旦产生了这种错误,很多可以通过web server 来处理.比如使用 apache 的定义 或者nginx 的定义.都可以定向处理.如果单 ...
- NGINX访问日志和错误日志
Logs are very useful to monitor activities of any application apart from providing you with valuable ...
- NGINX怎样隐藏上游错误?
原文作者:陶辉 原文链接: NGINX怎样隐藏上游错误? 转载来源:NGINX开源社区 当上游出错时,作为负载均衡的NGINX可以实时更换Server,在客户端无感知的情况下重新转发HTTP请求.这一 ...
- spring mvc 中静态资源404、302错误
[求教]spring mvc 中静态资源404.302错误 (2019/3/22补充)在新的项目中也偶尔遇到资源被拦截的情况(前提我已经设置了各种静态资源不被拦截的措施),至今仍然没能找到具体原因,所 ...
- phpstudy_pro在wnmp环境下404、403错误
phpstudy_pro在wnmp环境下404.403错误: server {listen 80;server_name www.yaoyaogui.com;root "F:/www/zih ...
- sudo apt-get install 安装软件总是出现“404 NOT FOUND” 错误的解决方案 !
sudo apt-get install 安装软件总是出现"404 NOT FOUND" 错误的解决方案 ! Google一下,发现是缺少某些包,要更新软件源.然后执行了sudo ...
- Spring Security第2部分–密码加密,自定义404和403错误页面
这是Spring安全站的第二部分. 在这篇文章中,我将向您展示如何使用MD5加密密码以及自定义403和404状态代码错误页面. 如果您尚未阅读第1部分,请单击 此处 . 因为我们在这里继续第1部分项目 ...
最新文章
- SQL2005 BCP
- 11年瑞纳手动挡值多少钱_三分钟让你知道手中的松石值多少钱
- ZYNQ EMIO使用及可重用封装
- Java http方式提交短信到短信网关
- php的主要架构,php运行原理与基本结构
- 努力,做个淡定的女子
- Server Develop (八) IOCP模型
- 2022年终结版WPF项目实战合集发布
- 死磕JDK源码之String
- Docker拉取Redis镜像安装运行
- 安装完Anaconda python 3.7,想使用python3.6方法
- 【C语言】pow函数的模拟实现(递归)
- 通过百度BAE搭建微信二次开发的服务(2)
- 花儿还有重开日,人生没有再少年.
- 天龙八部荣耀版体验服服务器未响应,《天龙八部荣耀版》创新竖版手游官网-合区来了!体验服合区测试解析...
- (全网首发)谢惠民答案------谢惠民上下册习题解析
- Android 原生 多屏显示 (分屏) 原理 解析
- (转自林达华)深入问题本身
- 更简单获取到Bean对象(1)
- 定期定量采购_定期订货法与定量订货法分析
热门文章
- 机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线
- 最陡梯度下降算法和LMS算法原理介绍及MATLAB实现
- KVM虚拟化,超详细
- iOS动手做一个直播app开发(代码篇)
- 基于无线Mesh网络OLSR路由协议的MATLAB仿真
- KiBiEx互联网交易互动平台数字货币
- 亲测可用~ Ubuntu20.04 findfont: Font family [‘sans-serif‘] not found. Times New Roman 字体缺失
- redis安装和启动
- redis安装Windows
- ApacheCN×Tesra 免费算力申请活动