中文维基百科建站系统-HDwiki爱好者

当前位置: 主页 > Web技术 >

配置nginx过滤不良访问提高squid命中率

时间:2011-09-28 23:27来源:网络 作者:佚名 点击:
1、对静态内容加以问号的访问

例如http://www.7jiejie.com?abc,这样的请求会透过squid缓存,直达后端服务器,并且在squid中保存缓存,从而造成压力和内存浪费。

在nginx的server中加入对html文件和首页等的过滤规则以解决此问题,此规则判断首页和html、jpg、gif结尾的文件,如果结尾有?xxx,则抛出403错误,由error_page接收,并用302跳转到正确的地址。

location ~* (.html$)|(^/$)| (.jpg$)|(.gif$){
proxy_pass http://www.7jiejie.com;
if ($is_args)
{
return 403;
error_page 403 =200 $scheme://$host$uri;
}
}

这个方式也不是非常的完美,在测试中试图使用rewrite来达成目的,但rewrite之后会保留原来的$args即?的内容,所以不能成功。另外,如果url中有中文,则跳转是会失败,所以要保证url中不含有中文,包括url_encode的结果。

2、对静态内容发送POST请求

这种请求也会透过squid,但不会在squid缓存内容。

依葫芦画个瓢,以下配置可解决
location ~* (.html$)|(^/$)| (.jpg$)|(.gif$){
proxy_pass http://www.7jiejie.com;
if ($request_method = POST){
return 403;
error_page 403 =200 $scheme://$host$uri;
}
}
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
推荐内容