介绍下如何通过修改nginx的配置,以实现提高squid命中率的方法。
1、对静态内容加以问号的访问
例如,http://www.jb200.com?abc,该请求会透过squid缓存,直达后端服务器,并且在squid中保存缓存,从而造成压力和内存浪费。
解决方法:
在nginx的server中加入对html文件和首页等的过滤规则,此规则判断首页和html、jpg、gif结尾的文件,如果结尾有?xxx,则抛出403错误,由error_page接收,并用302跳转到正确的地址。
在测试中试图使用rewrite来达成目的,但rewrite之后会保留原来的$args即?的内容,所以不能成功。
另外,如果url中有中文,则跳转是会失败,所以要保证url中不含有中文,包括url_encode的结果。
2、对静态内容发送POST请求
这种请求也会透过squid,但不会在squid缓存内容。
配置: