Squid - Arch Linux 中文维基

跳至內容

# 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 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

分類：​

- 代理伺服器

隱藏分類：​

- 使用「模板:糟糕的翻譯」標記的頁面或章節

Squid
新增話題