问题

通过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错误查找相关推荐

  1. nginx 404 403等错误信息页面重定向到网站首页或其它事先指定的页面

    server { listen 80;server_name www.espressos.cn;location / { root html/www;index index.html index.ht ...

  2. nginx部署vue前端,刷新出现404或者500错误的解决方案

    nginx部署vue前端,刷新出现404或者500错误的解决方案 参考文章: (1)nginx部署vue前端,刷新出现404或者500错误的解决方案 (2)https://www.cnblogs.co ...

  3. python自定义全局异常_Django 自定义404 500等错误页面的实现

    在开发网站的过程中,404,500错误,是不可避免产生的. 一旦产生了这种错误,很多可以通过web server 来处理.比如使用 apache 的定义 或者nginx 的定义.都可以定向处理.如果单 ...

  4. NGINX访问日志和错误日志

    Logs are very useful to monitor activities of any application apart from providing you with valuable ...

  5. NGINX怎样隐藏上游错误?

    原文作者:陶辉 原文链接: NGINX怎样隐藏上游错误? 转载来源:NGINX开源社区 当上游出错时,作为负载均衡的NGINX可以实时更换Server,在客户端无感知的情况下重新转发HTTP请求.这一 ...

  6. spring mvc 中静态资源404、302错误

    [求教]spring mvc 中静态资源404.302错误 (2019/3/22补充)在新的项目中也偶尔遇到资源被拦截的情况(前提我已经设置了各种静态资源不被拦截的措施),至今仍然没能找到具体原因,所 ...

  7. phpstudy_pro在wnmp环境下404、403错误

    phpstudy_pro在wnmp环境下404.403错误: server {listen 80;server_name www.yaoyaogui.com;root "F:/www/zih ...

  8. sudo apt-get install 安装软件总是出现“404 NOT FOUND” 错误的解决方案 !

    sudo  apt-get install 安装软件总是出现"404 NOT FOUND" 错误的解决方案 ! Google一下,发现是缺少某些包,要更新软件源.然后执行了sudo ...

  9. Spring Security第2部分–密码加密,自定义404和403错误页面

    这是Spring安全站的第二部分. 在这篇文章中,我将向您展示如何使用MD5加密密码以及自定义403和404状态代码错误页面. 如果您尚未阅读第1部分,请单击 此处 . 因为我们在这里继续第1部分项目 ...

最新文章

  1. SQL2005 BCP
  2. 11年瑞纳手动挡值多少钱_三分钟让你知道手中的松石值多少钱
  3. ZYNQ EMIO使用及可重用封装
  4. Java http方式提交短信到短信网关
  5. php的主要架构,php运行原理与基本结构
  6. 努力,做个淡定的女子
  7. Server Develop (八) IOCP模型
  8. 2022年终结版WPF项目实战合集发布
  9. 死磕JDK源码之String
  10. Docker拉取Redis镜像安装运行
  11. 安装完Anaconda python 3.7,想使用python3.6方法
  12. 【C语言】pow函数的模拟实现(递归)
  13. 通过百度BAE搭建微信二次开发的服务(2)
  14. 花儿还有重开日,人生没有再少年.
  15. 天龙八部荣耀版体验服服务器未响应,《天龙八部荣耀版》创新竖版手游官网-合区来了!体验服合区测试解析...
  16. (全网首发)谢惠民答案------谢惠民上下册习题解析
  17. Android 原生 多屏显示 (分屏) 原理 解析
  18. (转自林达华)深入问题本身
  19. 更简单获取到Bean对象(1)
  20. 定期定量采购_定期订货法与定量订货法分析

热门文章

  1. 机械转嵌入式开发需要学什么东西?嵌入式软件工程师学习路线
  2. 最陡梯度下降算法和LMS算法原理介绍及MATLAB实现
  3. KVM虚拟化,超详细
  4. iOS动手做一个直播app开发(代码篇)
  5. 基于无线Mesh网络OLSR路由协议的MATLAB仿真
  6. KiBiEx互联网交易互动平台数字货币
  7. 亲测可用~ Ubuntu20.04 findfont: Font family [‘sans-serif‘] not found. Times New Roman 字体缺失
  8. redis安装和启动
  9. redis安装Windows
  10. ApacheCN×Tesra 免费算力申请活动