Squid
來自 Squid 官方網站:
- Squid 是一個 Web 緩存代理,支持 HTTP, HTTPS, FTP, 以及更多。它通過緩存與重用經常請求的web頁面,減少帶寬使用同時提升了響應時間。Squid 具有可擴展的訪問控制功能,同時可以使伺服器加速。它運行在 Unix 和 Windows 中,採用 GNU GPL 協議發佈。
儘管 squid 在大型公司和學校中工作的很好,它也可以為個人家庭用户使用。
安裝[編輯 | 編輯原始碼]
配置[編輯 | 編輯原始碼]
默認設置下,緩存目錄會創建於 /var/cache/squid
,同時正確的權限會被同時設置好。然而,為了更好的控制,我們需要深入 /etc/squid/squid.conf
.
所有的配置項都有註釋,但是如果你想去掉註釋的話,你可以運行:
sed -i "/^#/d;/^ *$/d" /etc/squid/squid.conf
下面的選項會對你有用。如果你沒有這些選項,你可以添加進去。
http_port
- 設置 Squid 綁定的代理端口。你可以將 Squid 綁定到多個端口,使用多個 http_port 行。默認情況下,Squid 綁定到 3128 端口。
http_port 3128 http_port 3129
http_access
- 這是訪問控制列表,即誰被允許使用這個代理。默認只有 localhost 被允許訪問這個代理。作為測試目的,你可以改變這個選項http_access deny all
為http_access allow all
,這會允許所有人連結到你的代理。如果你想僅僅允許子網內訪問,你可以使用:
acl ip_acl src 192.168.1.0/24 http_access allow ip_acl http_access deny all
cache_mgr
- 這是緩存管理員的 email 地址。
cache_mgr squid.admin@example.com
shutdown_lifetime
- 指定當 squid 的 rc.d 腳本請求停止的時候等待的時間。如果你在你的桌面電腦上運行 squid,你也許需要設成短一點的時間值。
shutdown_lifetime 10 seconds
cache_mem
- 這是你想讓 squid 使用內存而不寫入硬盤的內存量。Squid 的總內存使用量會超過這個值!默認這個值是 8MB,所以如果你有很多內存的話,你也許想增加這個值。
cache_mem 64 MB
visible_hostname
- 可以在狀態/錯誤信息中看到的 hostname。
visible_hostname cerberus
cache_peer
- 如果你想讓 Squid 穿過另一個代理伺服器,而不是直接連到 Internet,你需要在這裏指定。login
- 如果上層代理需要認證的話使用這個選項。never_direct
- 如果你設定了上面的選項的話,可以吿訴緩存不要直接連接到 Internet 請求頁面。
cache_peer 10.1.1.100 parent 8080 0 no-query default login=user:password never_direct allow all
maximum_object_size
- 這是緩存部件的最大大小。默認這個值很小 (我認為是 256KB),所以如果你有很多磁盤空間,你需要將這個值增大到一個合理的值。
maximum_object_size 10 MB
cache_dir
- 這是你的緩存文件夾,存儲緩存文件的位置。有很多個選項,但是格式大概是這樣子:
cache_dir diskd <directory> <size in MB> 16 256
所以,在一個學校的代理伺服器中:
cache_dir diskd /cache0 200000 16 256
如果你改變了默認的緩存文件夾,你需要在啟動 squid 前為文件夾設置合適的權限。否則會無法創建緩存文件夾並且停止運行。
啟動[編輯 | 編輯原始碼]
配置完成之後,你需要檢查一下配置文件是否正確:
# squid -k check
然後創建緩存目錄:
# squid -z
最後你可以啟動 Squid:
# systemctl start squid
開機啟動:
# systemctl enable squid