Squid 是類 Unix 系統主流的快取/代理伺服器,支援正向代理、反向代理 (Reverse Proxy)、多級快取、CDN 邊緣節點。Windows 移植版功能完整,適合 Windows 基礎設施環境。
下載:官方 Windows Binaries (請自行尋找最新版)。
C:\squid (路徑**不可含空格**,配置檔建議用正斜線 /)C:\squid\etc 下複製三檔去除 .default 後綴:cachemgr.conf, mime.conf, squid.confC:\squid\sbin\squid -i -n SquidProxy (服務名自訂,含空格用雙引號)C:\squid\sbin\squid -z (自動建立 C:\squid\var\cache 結構)net start SquidProxy 或 C:\squid\sbin\squid -n SquidProxy查看日誌排錯:C:\squid\sbin\squid.exe.log、C:\squid\var\cache.log
建議使用 Notepad++ 編輯 (語法高亮)。以下針對四大典型場景給出關鍵配置片段。
# 允許所有客戶端 acl all src all http_access allow all # 監聽 80 埠 http_port 80 # 定義上游源站 (origin server) cache_peer 172.16.0.20 parent 80 0 no-query originserver name=web1
# 依域名建立 ACL acl site_a dstdomain www.a.com acl site_b dstdomain www.b.com http_access allow site_a http_access allow site_b # 加速模式:轉發 Host Header 給後端 http_port 80 vhost # 兩個源站 cache_peer 172.16.0.20 parent 80 0 no-query originserver name=web_a cache_peer 172.16.0.30 parent 80 0 no-query originserver name=web_b # 域名綁定源站 (如 IIS 主機頭) cache_peer_domain web_a www.a.com cache_peer_domain web_b www.b.com # 允許存取對應源站 cache_peer_access web_a allow site_a cache_peer_access web_b allow site_b # 快取參數 cache_mem 1024 MB cache_dir ufs c:/squid/var/cache 10240 16 256
acl site_a dstdomain www.a.com http_access allow site_a http_port 80 vhost # 兩台源站輪詢 cache_peer 172.16.0.20 parent 80 0 no-query originserver round-robin name=web_a1 cache_peer 172.16.0.30 parent 80 0 no-query originserver round-robin name=web_a2 cache_mem 1024 MB cache_dir ufs c:/squid/var/cache 10240 16 256
acl site_a dstdomain www.a.com acl localnet src 172.16.0.0/24 # 內網段供 Squid 間通訊 http_access allow site_a icp_access allow localnet http_port 80 vhost icp_port 3130 # ICP 通訊埠 # 兩台 Squid 互為鄰居 (Sibling) cache_peer 172.16.0.10 sibling 80 3130 cache_peer 172.16.0.11 sibling 80 3130 # 共同後端源站輪詢 cache_peer 172.16.0.20 parent 80 0 no-query originserver round-robin name=web_a1 cache_peer 172.16.0.30 parent 80 0 no-query originserver round-robin name=web_a2 cache_mem 1024 MB cache_dir ufs c:/squid/var/cache 10240 16 256
C:\squid\sbin\squid -k reconfigure -n SquidProxy
net stop SquidProxy sc delete SquidProxy
| 指令/參數 | 用途 |
|---|---|
| http_port 80 vhost | 監聽 80 埠 + 啟用虛擬主機模式 (轉發 Host Header) |
| cache_peer IP parent 80 0 no-query originserver | 定義父層源站,不查詢 ICP,標記為源站 |
| round-robin | 啟用輪詢負載平衡 |
| cache_peer_domain name domain | 將 cache_peer 綁定特定域名 (實現虛擬主機分流) |
| cache_mem 1024 MB | 記憶體快取大小 (熱門物件) |
| cache_dir ufs path size L1 L2 | 磁碟快取:路徑、總大小(MB)、一級/二級子目錄數 |
| icp_port 3130 | ICP 協定通訊埠 (叢集模式必須) |
| sibling vs parent | sibling: 對等節點 (查詢快取);parent: 上游源站 |
cache.log、access.log,設定日誌輪轉squid -k rotate 切割日誌http_access deny all 預設拒絕,僅允許業務必要 ACL;封鎖管理介面 (cachemgr.cgi) 僅限內網存取Windows 版 Squid 完整支援反向代理、快取、負載平衡、多層叢集,配置檔語法與 Linux 版一致,遷移零成本。掌握 cache_peer、cache_peer_domain、vhost、round-robin 核心指令,即可應對從單站點到多層 CDN 的各類部署需求。