当前位置: 首页 > news >正文

nginx反向代理tomcat一段时间后出现的ERR_CONTENT_LENGTH_MISMATCH异常

使用nginx代理tomcat上的web项目。项目上线了一段时候后,访问项目出现了css文件或js文件的ERR_CONTENT_LENGTH_MISMATCH异常,而不能加载这些文件。

查询网上给出的解答,一般是说在nginx的proxy_temp下的缓存文件的所有者不是nginx启动者而导致启动者不能访问这些缓存文件而出现这个问题,需要将所有者改为启动者,ps nginx可以查看启动者是谁;另外还需要在nginx的配置文件nginx.conf中,在worker_processes  1;之前加上user root;比如root为启动者。这样可以正常访问缓存文件,而不会出现这个问题了。

查看自己的服务器,确实proxy_temp的所有者是nobody,而启动者是root,为了方便,直接将proxy_temp下的缓存文件全部rm,并且也修改了nginx.conf文件。果然,再次访问项目,正常了,不报ERR_CONTENT_LENGTH_MISMATCH异常了。

结果,到第二天,访问项目时,又出现这个异常了。为了排查问题,直接使用tomcat的8080端口访问项目,没有问题,说明可能还是nginx代理的问题。于是,试图查看nginx.conf文件,结果vi时,提示出现Write error in swap file问题。查询,同目录下,没有.swap文件,所以不是上次错误退出而导致的nginx.conf.swap文件没有清除的问题。经查,是因为/磁盘满了。df -h确实/挂载点满了。看来需要先解决磁盘满的问题。于是从/开始,du -h --max-depth=1,一层一层追查,到底是哪些个无关紧要的文件过于庞大,以便删除之。最后的结果竟然是nginx/logs/access.log高达几个G的大小,将磁盘撑满。虽然日志文件很重要,但是,正常运行也很重要,如果确实需要日志文件,可以先将其备份出来,再删除。删除access.log文件后,试着访问项目,正常了。

推测,这个问题的原因可能是,由于磁盘满了,nginx尝试将访问记录写入access.log时失败,于是可能不能按照其原来的步骤,也就是写入log,读取proxy_temp下的缓存文件,响应给客户端,由于不能正常读取缓存,导致客户端不能得到缓存中的某些大文件,如css或js等。nginx底层究竟是不是这样运作的,笔者不知道。这个只是猜测。不管怎样,问题解决了。随便,又查看了下tomcat的logs文件,确实也占了很大的空间,看来,就算没有出现这个问题,对于增量大而快的日志文件也是要妥善处理的,否则,服务器迟早会吃饱。

相关文章:

  • cas简介
  • [one_demo_15]模拟交通灯管理系统
  • jquery easyui datagrid columns日期格式化问题
  • jquery使用$(xx).text()与字符串比较,明明看着相等,结果却为false
  • 联合使用jsp标签和struts的标签在jsp页面获取当前时间
  • 从iframe框架进入登录页面时跳出iframe到顶层页面
  • springboot简介
  • jpa
  • LintCode(22)将一个嵌套集合按照原顺序处理为Integer集合
  • [one_demo_16]直接插入排序的demo
  • [one_demo_17]使用传统方式实现线程间通信的例子
  • ThreadLocal
  • [one_demo_18]js定时器的示例
  • Java8部分新特性
  • jvm简介
  • Java精华积累:初学者都应该搞懂的问题
  • JAVA之继承和多态
  • JDK 6和JDK 7中的substring()方法
  • OSS Web直传 (文件图片)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • Unix命令
  • Vim Clutch | 面向脚踏板编程……
  • 理解在java “”i=i++;”所发生的事情
  • 译自由幺半群
  • 优化 Vue 项目编译文件大小
  • 正则与JS中的正则
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 2017年360最后一道编程题
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 曜石科技宣布获得千万级天使轮投资,全方面布局电竞产业链 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​520就是要宠粉,你的心头书我买单
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (1)Nginx简介和安装教程
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (2022 CVPR) Unbiased Teacher v2
  • (4)事件处理——(2)在页面加载的时候执行任务(Performing tasks on page load)...
  • (9)目标检测_SSD的原理
  • (C语言)球球大作战
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)创业的注意事项
  • (转载)Google Chrome调试JS
  • ***详解账号泄露:全球约1亿用户已泄露
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET CLR Hosting 简介
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .Net Core与存储过程(一)
  • .netcore 获取appsettings
  • .net的socket示例
  • .NET构架之我见
  • .net连接oracle数据库
  • .NET下ASPX编程的几个小问题