配置后,重启squid(sudo /etc/init.d/squid restart)。将Chrome浏览器的代理配置改为该代理,尝试打开"baidu.com",陷入漫长等待。于是打开squid的访问日志/var /log/squid/access.log,看到如下失败信息:
1353476636.008 0 10.10.13.235 TCP_DENIED/400 1709 GET error:invalid-request – NONE/- text/html
1353476657.337 1 10.10.13.235 TCP_DENIED/400 1709 GET error:invalid-request – NONE/- text/html
1353476691.420 0 10.10.13.235 TCP_DENIED/400 1678 GET error:invalid-request – NONE/- text/htm
居然出错!换成IE浏览器,现象一样,都是这种错误。在/var/log/squid/cache.log中,还能发现下面错误:
2012/11/21 13:43:56| clientTryParseRequest: FD 12 (10.10.13.235:4247) Invalid Request
不断的修改squid.conf配置,不断地修改浏览器代理配置,不断的失败。总是修改浏览器的代理配置让我感觉十分费劲,于是我换用curl工具来测试 该代理。curl是可以识别http_proxy环境变量的。将http_proxy环境变量改为export http_proxy=http://10.10.13.17:3128,在命令行敲入curl http://baidu.com,居然得到下面结果:
$ curl http://baidu.com <html> <meta http-equiv="refresh" content="0;url=http://www.baidu.com/"> </html>
再回到access.log观察,居然看到了下面成功日志:
1353476863.916 0 10.10.13.235 TCP_HIT/200 677 GET http://baidu.com/ – NONE/- text/html
于是又尝试用wget下载外部文件、用subversion访问外部svn repository、rvm安装ruby包均告成功!这不就是我想要的结果吗!居然被我误打误撞到了!虽然到目前为止我仍然不知道为何浏览器发出的http request不能被识别^_^。
Squid这个http代理功能十分强大,本身就是被很多企业作为公司级http代理的工具的。其配置参考足足可以写成一本厚厚的书(市面上已经有这种书),还好我的场景用不到那些稀奇古怪的配置,目前这种状态足矣!








