前言
在软工实验中我启用了nginx,但是奇怪的是临近检查的时候它突然不行了,最终错过了软工检查时间,给实验老师提交的录屏。
问题描述
前后台启动成功后,访问localhost:xxxx
(自设置的端口号),但是奇怪的是他并没有得到想要的效果:
文章图片
文章图片
net::ERR_CONTENT_LENGTH_MISMATCH:长度不匹配?
错误解决过程:
1.将报错整个复制利用google进行搜索:
文章图片
没想到google推荐的是一个根据国外stack overflow的翻译,可见更喜欢直接看中文的程序员有多少。可惜它很乱,而且有的地方翻译的不太懂,感觉是浪费时间。
2.根据第二个查询结果可知是nginx的问题
【nginx cache踩坑】去看nginx日志信息:
文章图片
依据选中的报错去查:
文章图片
两条命令:
1.sudo chmod o+x /usr/local/var:获得操作文件的权限
2.sudo chown -vhR nobody:admin /usr/local/var/run/nginx:设置nginx拥有者为空,使用者为所有管理员组。
问题至此解决!
3.了解问题原因
nginx时有缓存的!
文章图片
示例:
第一步:客户端第一次向Nginx请求数据A;
第二步:当Nginx发现缓存中没有数据A时,会向服务端请求数据A;
第三步:服务端接收到Nginx发来的请求,则返回数据A到Nginx,并且缓存在Nginx;
第四步:Nginx返回数据A给客户端应用;
第五步:客户端第二次向Nginx请求数据A;
第六步:当Nginx发现缓存中存在数据A时,则不会请求服务端;
第七步:Nginx把缓存中的数据A返回给客户端应用。
至此我的问题全部解决,在这其中我也搜到说把proxy_temp缓存文件夹删掉,确实删掉了,然后重新请求发现可以了,就拿着电脑又去机房找老师检查了,再一刷新又不行了。这其中的原理就是我删除之后是没有缓存了,但是我访问了一次,第二次访问他会直接去找第一次访问的缓存,由于权限不够,所以最终报这个错。
总结
首先是此次麻烦了很长时间强哥,耽误了他一下午还是挺愧疚的。此次最大的收获就是不能心急,同时任何东西也要记得看日志信息。
推荐阅读
- Go|Docker后端部署详解(Go+Nginx)
- 后台|NATAPP内网穿透通过nginx实现一个端口访问多个不同端口服务
- nginx-1.20.2安装使用
- NGINX 创始人 Igor Sysoev 退出 F5(20 年发展“简史”令人肃然起敬)
- Nginx|Nginx~从入门到入坑。
- nginx|Mac配置PHP环境(brew安装nginx+php)
- 使用ngx_lua构建高并发应用(2)
- svn|前瞻(Spring Boot 2.4.0 第二个里程碑版本发布)
- keepalived + nginx组建高可用负载平衡Web server集群