发布于2022-09-18 17:57 阅读(896) 评论(0) 点赞(30) 收藏(0)
前端页面加载资源时,出现ERR_CONTENT_LENGTH_MISMATCH
的报错情况。
从昨天下午开始,我上测试环境测试就开始发现会偶发如下问题:
问其他小伙伴是否有遇到类似问题,都说没有问题。
难道是我人品有问题?因为有其他事要忙,索性先不管了。
今天早上,测试姐姐说他那边也遇到了我昨天说的问题。那看来不是我人品问题。
require echarts.js error.
第一反应是缺失了这个第三方的echart。ERR_CONTENT_LENGTH_MISMATCH 200
是什么原因?ERR_CONTENT_LENGTH_MISMATCH 200
Nginx
报错了于是先问了大家最近是否有对环境nginx做变更?
了解到的确昨天修改了Nginx的配置文件,所以取了一下Nginx的error.log,如下:
日志的报错提示很明显,Permission denied
,Nginx在访问临时目录/usr/local/nginx/proxy_temp
下文件时没有权限导致访问失败。
先查看下该临时目录的所有者,是nobody
,而Ngnix
的使用者是zoms
所以先试着使用chown
命令修改所有者为zoms
-R zoms:zoms ./proxy_temp
然后重启,重启后还是报Permission denied
。重新查看权限,居然又变回了nobody
nobody
的原因为何修改权限并重启后,所有者又回变成nobody
?
找到了一个大佬的解释:
虽然我们并没有nginx -t
,但是给了我一点启发。
我们是用root
用户进来并修改配置文件的,然后用root
重启的,然而root
并不是Ngnix
的所有者,所以重启后就强行修改了临时目录的权限!
此时我们先停掉Ngnix
,并用Ngnix
的所有者zoms
进入,修改临时目录权限为zoms
,然后再用zooms
重启Ngnix
。
重启好后,再进入测试环境,这时候就很快了,问题1,2,3都没有再出现了!
所以根本原因是,Nginx
的所有者是zooms
,但是昨天用root
用户去修改配置并重启了,重启后导致/usr/local/nginx/proxy_temp
的所有者变为了nobody
。
这时候Nginx
在尝试访问/usr/local/nginx/proxy_temp
下文件时,因为没有权限,导致了请求失败,进而导致了前端不能正确访问资源的问题ERR_CONTENT_LENGTH_MISMATCH
至于nginx
为何要访问临时目录而不是直接去主机上加载,原因是访问的资源过大的话,Nginx
会优先从缓存加载。
1.Nginx
访问资源时,如果资源过大,会优先从缓存目录加载。
2.非Nginx
所有者 重启Ngnix
后会强制将临时目录所有者修改为nobody
。所以一定要用Ngnix
所有者去重启Ngnix
!
3.对于使用负载均衡的项目,如何定位访问不到资源的问题处于Ngnix
?
可以绕过Ngnix
,直接访问目标主机上的资源,如果能快速访问到,那就说明服务器没问题,只能是因为Ngnix
的某些问题导致访问失败了。进而可以查看Ngnix
的error.log
,进一步明确原因。
作者:麻辣小龙虾
链接:http://www.qianduanheidong.com/blog/article/415458/be0e4b0dda9178b0758d/
来源:前端黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 前端黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-3
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!