Squid

出自 Arch Linux 中文维基

這篇文章或章節的翻譯不反映原文。

原因:Still references rc.d.(在 Talk:Squid# 中討論)

來自 Squid 官方網站

Squid 是一個 Web 緩存代理,支持 HTTP, HTTPS, FTP, 以及更多。它通過緩存與重用經常請求的web頁面,減少帶寬使用同時提升了響應時間。Squid 具有可擴展的訪問控制功能,同時可以使伺服器加速。它運行在 Unix 和 Windows 中,採用 GNU GPL 協議發布。

儘管 squid 在大型公司和學校中工作的很好,它也可以為個人家庭用戶使用。

安裝[編輯 | 編輯原始碼]

安裝位於官方軟體倉庫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 allhttp_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