Squid的配置文件

最近幾個星期一直在調試與優化squid,參看了很多資料,寫了三篇日誌備忘,總結如下:

1、從源代碼編譯Squid使之支持https代理

2、設置Squid的訪問密碼

3、Squid+Stunnel實現SSL加密代理

這三篇日誌都是根據自己服務器的情況來記錄的,所用的功能也只是squid的冰山一角,如果需要深入研究squid,推薦以下一些資源:

1、鳥哥的「區網控制者: Proxy 伺服器」,這篇文章可以作為squid的入門教材,筆者也是從這篇文章開始入手的,話說回來,鳥哥的站點絕對是Linux新手收藏夾內必備的網站。

2、Jeff Pang的「Squid中文權威指南」,這是Jeff Pang翻譯自Squid作者的英文原著,沒有出版發行過,很是可惜,E文不好,又想深入研究squid的必備資料。

以下是筆者自己使用的一份squid配置,測試了幾個星期,沒有發現什麼問題:

# 端口,這裡使用的是https_port端口,也可使用普通的http_port端口,根據實際情況調整
https_port 443 cert=/etc/squid/ssl.crt key=/etc/squid/ssl.key version=4
icp_port 0

# 客戶認證
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/password
auth_param basic children 5
auth_param basic realm 這裡寫登陸時顯示的信息
acl squid_user proxy_auth REQUIRED

# 網絡控制,http_access是按順序執行的
# 如果是通過stunnel中轉監聽squid的端口,可以把localnet註釋掉
# 另外,本例中使用了用戶認證,並且"http_access allow squid_user"在localnet之前,也就是默認所有用戶都需要認證,因此也可以將localnet註釋掉,無需定義
acl all src all
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
# acl localnet src 10.0.0.0/8
# acl localnet src 172.16.0.0/12
# acl localnet src 192.168.0.0/16
acl manager proto cache_object
acl purge method PURGE
acl Safe_ports port 80 21 443 563 70 210 280 488 591 777 1025-65535
acl SSL_ports port 443
acl CONNECT method CONNECT

http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow squid_user
# http_access allow localnet
http_access deny all

# 匿名設置,隱藏自己的真實ip
# squid 3.0以上header_access改為request_header_access
header_access From deny all
header_access Server deny all
header_access Link deny all
header_access Via deny all
header_access X-Forwarded-For deny all

# 禁止緩存項目於緩存項目存在時間
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex -i cgi-bin .php$ .asp$ .shtml$ .cfm$ .cfml$ .phtml$ .php3$ localhost
cache deny QUERY
refresh_pattern ^ftp: 1440 20% 10080 reload-into-ims
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i .(gif|png|jp?g|ico|bmp|tiff?)$ 10080 95% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(rpm|cab|deb|exe|msi|msu|zip|tar|xz|bz|bz2|lzma|gz|tgz|rar|bin|7z|doc?|xls?|ppt?|pdf|nth|psd|sis)$ 10080 90% 43200 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(avi|iso|wav|mid|mp?|mpeg|mov|3gp|wm?|swf|flv|x-flv|axd)$ 43200 95% 432000 override-expire override-lastmod reload-into-ims ignore-no-cache ignore-private
refresh_pattern -i .(html|htm|css|js)$ 1440 75% 40320
refresh_pattern -i .index.(html|htm)$ 0 75% 10080
refresh_pattern . 1440 90% 10080

# 緩存內存值,根據實際情況調整,一般不要超過三分之一的總內存
cache_mem 128 MB
# 设置置換策略和缓存目录大小为5000MB,一级目录为16个,二级目录为256个,這裡的緩存儲存方式為aufs,默認為ufs
memory_replacement_policy heap GDSF
cache_replacement_policy heap LFUDA
cache_dir aufs /var/squid/cache 5000 16 256
coredump_dir /var/squid/cache

maximum_object_size_in_memory 32 KB
maximum_object_size 128000 KB
cache_swap_low 90
cache_swap_high 95

# 下面是关于日志文件的放置目录与文件名
access_log /var/squid/logs/access.log  
cache_log /var/squid/logs/cache.log  
cache_store_log /var/squid/logs/cache_store.log  
pid_filename  /var/squid/logs/squid.pid

# 主機名稱、管理員和squid用戶組,proxy是默認的用戶組
visible_hostname yourhostname
cache_mgr admin
cache_effective_user proxy
cache_effective_group proxy
httpd_suppress_version_string on

# DNS
dns_timeout 10 seconds
dns_nameservers 8.8.8.8 8.8.4.4

# IP緩存的設置值
ipcache_size 1024
ipcache_low 90
ipcache_high 95
fqdncache_size 1024

# 一些優化設置
half_closed_clients off
client_persistent_connections off

memory_pools off
client_db off
reload_into_ims on
coredump_dir /cache
pipeline_prefetch on
offline_mode off

forward_timeout 240 second
connect_timeout 30 second
peer_connect_timeout 5 second
read_timeout 600 second
request_timeout 60 second
shutdown_lifetime 10 second

這個配置綜合參考了以下兩個網頁提供的配置:

[1] Ubuntu Server Guide. How to Install and Configure Proxy Server with Squid3 on Ubuntu Server 12.04 LTS. http://ubuntuserverguide.com/2012/05/how-to-install-and-configure-proxy-server-with-squid3-on-ubuntu-server-12-04-lts.html
[2] Feiyang. Squid 优化简谈. http://blog.chinaunix.net/uid-21868571-id-159016.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注