nginx cache踩坑

前言

在软工实验中我启用了nginx但是奇怪的是临近检查的时候它突然不行了,最终错过了软工检查时间,给实验老师提交的录屏。

问题描述

前后台启动成功后,访问localhost:xxxx(自设置的端口号),但是奇怪的是他并没有得到想要的效果:
nginx cache踩坑_第1张图片

nginx cache踩坑_第2张图片

net::ERR_CONTENT_LENGTH_MISMATCH:长度不匹配?

错误解决过程:

1.将报错整个复制利用google进行搜索:nginx cache踩坑_第3张图片

没想到google推荐的是一个根据国外stack overflow的翻译,可见更喜欢直接看中文的程序员有多少。可惜它很乱,而且有的地方翻译的不太懂,感觉是浪费时间。

2.根据第二个查询结果可知是nginx的问题

去看nginx日志信息
image.png

依据选中的报错去查:

nginx cache踩坑_第4张图片

两条命令
1.sudo chmod o+x /usr/local/var:获得操作文件的权限
2.sudo chown -vhR nobody:admin /usr/local/var/run/nginx:设置nginx拥有者为空,使用者为所有管理员组。

问题至此解决!

3.了解问题原因

nginx时有缓存的!

nginx cache踩坑_第5张图片
示例:
第一步:客户端第一次向Nginx请求数据A;
第二步:当Nginx发现缓存中没有数据A时,会向服务端请求数据A;
第三步:服务端接收到Nginx发来的请求,则返回数据A到Nginx,并且缓存在Nginx;
第四步:Nginx返回数据A给客户端应用;
第五步:客户端第二次向Nginx请求数据A;
第六步:当Nginx发现缓存中存在数据A时,则不会请求服务端;
第七步:Nginx把缓存中的数据A返回给客户端应用。

至此我的问题全部解决,在这其中我也搜到说把proxy_temp缓存文件夹删掉,确实删掉了,然后重新请求发现可以了,就拿着电脑又去机房找老师检查了,再一刷新又不行了。这其中的原理就是我删除之后是没有缓存了,但是我访问了一次,第二次访问他会直接去找第一次访问的缓存,由于权限不够,所以最终报这个错。

总结

首先是此次麻烦了很长时间强哥,耽误了他一下午还是挺愧疚的。此次最大的收获就是不能心急,同时任何东西也要记得看日志信息。

你可能感兴趣的