Amazon-Ec2

使用 IPtables 防止 squid 轉發循環

  • May 11, 2013

我有一個網路應用程序,我想限製文件上傳大小。

我想我會嘗試使用 squid,通過它的指令 request_body_size_max。

我的網路伺服器在埠 8080 上執行,並且我在同一台伺服器(Ubuntu 12.04 LTS)上安裝了 squid 3.1.19。該伺服器在 Amazon 的 EC2 上執行,如果這有什麼不同的話。

squid.conf 包含:

http_port 3128 transparent

我添加到 IPTables:

iptables -t nat -A PREROUTING -p tcp --dport 8080 -j REDIRECT --to-port 3128

當我訪問網路伺服器時,魷魚日誌中的結果是:

Forwarding loop detected.

我需要做什麼來防止這種情況發生?謝謝…

問題是當 squid 嘗試連接到 Web 伺服器(在埠 8080 上)時,它的請求也被重定向到它自己。您必須限制 REDIRECT 規則的範圍(例如,基於傳入介面)。

如果您伺服器上的外部介面是 eth0,則更改如下規則:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 8080 -j REDIRECT --to-port 3128

**更新:**第二個想法看起來我錯了。本地 (127.0.0.1) 流量不通過 PREROUTING 鏈。

你是如何告訴 squid 使用哪個上游 Web 伺服器的?

引用自:https://serverfault.com/questions/506922