Table of Contents
1.场景
最近帮一个朋友解决微信公众号的服务器迁移工作,忙碌了大概40个工时,给了点劳务费,基本上跟发传单差不多的时薪吧,还真是廉价呢!得努力提高自己的价值才行啊。大神说过,“一分钟能解决的事看似简单,但知道怎么解决,这个就比较有价值了”。我何时能成为大神呢?
言归正传,期间有一个服务地址,在浏览器只能显示一部分,一直转圈圈。
服务在内网Linux服务器,使用Nginx域名转发出来,第一次遇到,所以记录一下。
2.问题
使用谷歌浏览器,调用后端接口,控制台报错,network没有任何返回,但是通信是200
1 | net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) |
3.原因探索
- 1.nginx缓存区空间不足。代理文件大小超过配置的proxy_temp_file_write_size值时,会写到nginx缓存,nginx缓存区太大了,写不进去了
- 2.磁盘空间不足
- 3.缓存文件夹权限问题
开始还怀疑是磁盘空间不足。但使用 df -h /mnt
查看后
1 | # df -h /mnt |
虽然这个磁盘空间不大(这里是个教训,下次部署一定要选择大的磁盘,提前查看,而不是固定在/mnt这种目录下),但空间还有,所以排除磁盘不足的原因。
我遇到的原因,js文件1.6M,每次请求只能加载到 几k或几十k,不完整,导致页面出不来。
4.解决方式
- 先删除nginx的缓存,在设置默认缓存有效天数为10天
- 增大fastcgi缓存
由于我这里的文件大小,所以设置 fastcgi几个缓存参数 为 2048k。问题得以解决。
同时,缓存文件夹,如/var/lib/nginx/tmp/xxx 下面的所有文件夹,都要能被nginx默认用户访问。具体是www还是nginx可查看主配置文件。
设置命令
1 | chown -R ngunx:nginx /var/lib/nginx/tmp |
有的系统可能路径不一样。具体查看对应的配置。
5.总结
要解决复杂问题,不仅要懂前后端,懂网络,懂Linux命令运维,懂点系统知识,懂数据库,懂一些常见中间件。。还真是样样都会,会一点啊。。
抓基础吧,框架、语言这些都是表层,学习思想即可。
- 本文作者: Linking
- 本文链接: https://linking.fun/2021/08/15/静态网站js请求失败Nginx缓存区不足文件夹权限/
- 版权声明: 版权所有,转载请注明出处!