加起来折腾了一整天的squid,貌似是个好东西,大概说一下基本配置和注意问题。

以下内容以squid3.17为例。其中很多命令和参数都是凭印象写的,并不是当时的原始命令,所以大家要自己辨识打字错误,不过按照以下方法冷博客实操成功。仅供参考。

 

安装

到官网下载源码包

http://www.squid-cache.org/Versions/

配置参数需要啥就写啥,这里不啰嗦,按照如下命令即可默认安装:

# wget http://www.squid-cache.org/Versions/v3/3.1/squid-3.1.7.tar.gz
# tar –xvz –f squid-3.1.7.tar.gz
# cd squid-3.1.7.tar.gz
# ./configure –disable-loadable-modules
# make;make install

有一点注意:

squid 3.1.5以后版本,默认编译时,会出现如下错误,可以禁用eCAP(–disable-loadable-modules)

>     ../libltdl/libltdl/lt_error.h:35:31: error: libltdl/lt_system.h: No
> such file or directory
>     make[3]: *** [LoadableModule.o] Error 1
>     make[3]: Leaving directory `/usr/local/src/squid/squid-3.1.6/src’
>     make[2]: *** [all-recursive] Error 1
>     make[2]: Leaving directory `/usr/local/src/squid/squid-3.1.6/src’
>     make[1]: *** [all] Error 2
>     make[1]: Leaving directory `/usr/local/src/squid/squid-3.1.6/src’
>     make: *** [all-recursive] Error 1

另外,使用yum安装应该也可以,不没有教材这么说过。

配置

按照上一步,会默认的安装到/usr/local/squid目录,配置文件就在其下的etc/squid.conf文件,其中有详细说明,我们只需要改几个参数就OK

http_port 192.168.1.1:80  vhost vport

这个是你本机的地址,如果你本机ip 192.168.1.1 ,你在这里输入127.0.0.1 虽然都指的是本机,但一定要写192.168.1.1 这个做服务器的ip。后面端口号决定了你是cache加速还是代理,代理就写个其他端口,加速服务器或者cdn就写80即可。

cache_peer 66.249.89.104 parent 80 0 no-query originserver

代理的IP地址,就是你想加速或者代理的ip,这里写一个谷歌的服务器地址。
其他的有一些被注释掉的内容,大家酌情添加,下面给出一些屏蔽的acl,可供参考

#限制同一IP客户端的最大连接数
acl OverConnLimit maxconn 16
http_access deny OverConnLimit
#防止天涯盗链,转嫁给百度
acl tianya referer_regex -i tianya
http_access deny tianya
deny_info http://www.baidu.com/logs.gif tianya
#防止被人利用为HTTP代理,设置允许访问的IP地址
acl myip dst 192.168.1.1
http_access deny !myip
#防止百度机器人爬死服务器
acl AntiBaidu req_header User-Agent Baiduspider
http_access deny AntiBaidu
#允许本地管理
acl Manager proto cache_object
acl Localhost src 127.0.0.1 192.168.1.1
http_access allow Manager Localhost
http_access deny Manager
#仅仅允许80端口的代理
acl Safe_ports port 80 # http
http_access deny !Safe_ports
http_access allow all
#Squid信息设置
visible_hostname www.test137.com
cache_mgr webmaster@test137.com

调试

运行squid建立缓存,/usr/local/squid/sbin/squid –z 建立缓存文件
测试运行:squid –NCd1 如果有错误它会提示出来,一般而言是文件权限错误

我们通过修改dns配置或者hosts文件或者resolve文件,将某个域名只想我们的squid服务器,如果可以访问,说明服务器工作正常,而且var/log 中会有文件,其次cache目录也增加。