Linux下Squid3.0和Squid2.X相比,有了很多改變,這裡備忘一下:
Squid3.0的安裝是很簡單的:
./configure --prefix=/usr/local/squid
make
make install
chown -R nobody.nobody /usr/local/squid/var/
/usr/local/squid/sbin/squid -z
Squid3.0的配置也不復雜:
假設我們有兩台Apache服務器需要反向代理:www.avnads.cn(IP: x.x.x.x);www.britepic.org(IP: y.y.y.y)。
如果你的Apache和Squid再同一台服務器上,那麼要注意端口問題,可以讓Apache使用非80端口,而Squid使用80端口,也可以讓 Apache和Squid都使用80端口,只是Apache使用的是回環地址,而Squid使用的是外網地址,此時Apache的httpd.conf裡設置的是Listen 127.0.0.1:80。
squid.conf文件一共有四千多行,不過大部分都是注釋,配置反向代理功能大致涉及以下幾項:
acl
在文件裡找到TAG: acl的位置,在其後加上我們的設置:
acl sites dstdomain .avnads.cn
acl sites dstdomain .britepic.org
http_access
在文件裡找到TAG: http_access的位置,其後有一行注釋:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
我們就把自定義的規則放在這行的下面:
http_access allow sites
http_access的位置是很重要的,在下面有如下設置:
# And finally deny all other access to this proxy
http_access deny all
它會拒絕所有剩下的訪問。
http_port
在文件裡找到TAG: http_port的位置,在其後加上我們的設置:
http_port 80 defaultsite=缺省站點 vhost
一般來說,vhost就足夠了,不過加上defaultsite還是有好處的,畢竟,有的HTTP1.0客戶端不發送Host頭,在這種情況下系統有一個缺省值總比沒有強。
cache_peer
在文件裡找到TAG: cache_peer的位置,在其後加上我們的設置:
cache_peer x.x.x.x parent 80 0 no-query originserver name=foo
cache_peer y.y.y.y parent 80 0 no-query originserver name=bar
cache_peer_domain
在文件裡找到TAG: cache_peer_domain的位置,在其後加上我們的設置:
cache_peer_domain foo www.avnads.cn
cache_peer_domain bar www.britepic.org
cache_peer_access
在文件裡找到TAG: cache_peer_access的位置,在其後加上我們的設置:
cache_peer_access foo allow sites
cache_peer_access bar allow sites