在测试Squid代理服务器,发现有些网站无法访问,但是绝大部分网站都是可以访问的。(当前环境:squid-2.6.STABLE21-6版本)这个问题就出现在我的博客上,访问http://www.liusuping.com,使用squid代理就访问不了,代理去掉就一切ok,同样的情况还发生在http://www.brocader.cn 上面,这两个网站都是放在一台服务器上的。
根据上面的情况看可以判断是网站服务器做了设置,禁止代理服务器访问,合租网的空间我就不说啥了,以后又机会还是出国吧。
网上找了点资料看,这还是一个比较普遍的问题,解决办法就是对代理服务器的header进行设置。
默认情况下squid代理服务器会告诉对方网站我是代理服务器,有的服务器看到是代理服务器来访问就会拒绝服务。
因此在squid的配置文件上要进行如下修改:
vim /etc/squid/squid.conf
增加如下两行
header_access Via deny all
header_access X-Forwarded-For deny all
默认情况下这两个选项都是allow的,修改完成后重启squid服务,访问正常。
当安装了3.1.7版本的squid,你会发现原来的配置不能用,因为squid从3.0的版本之后配置文件发生了改变。
还是出现http://www.liusuping.com/ 这个网站不能访问,欢迎大家用我的网站来测试。
网上查了不少资料还是没找到关于3.0版本以上的解决办法,只好看squid自带的说明文档,不过原理还是一样的某些服务器拒绝代理服务器的访问,所以还是要通过因此代理服务器的信息来解决。
先介绍一个查看ip地址的网站http://ipid.shat.net/,在这个网站还可以看到你使用的代理服务器的信息,如下图所示:
我们需要的就是隐藏:“HTTP Forwarded For” “Proxy Host/Type”这两个信息
通过查看squid的说明文档找到下面两个参数,将其加入到squid的配置文档,重启squid服务
forwarded_for off
via off