Web-Server

充當網橋的透明 Web 記憶體代理

  • October 1, 2009

是否存在作為網橋連接的 Web 記憶體代理,以便攔截來自客戶端的 GET 請求並將它們重定向到其他 Web 伺服器?(無需配置客戶端使用代理)

 Client              _________________
       \            |                 |
Client--- Network--- |eth0  Proxy  eth1|--- Internet
       /            |_________________|       \
 Client                                        \____________
                                               | Web cache  |
                                               |____________|

謝謝。

如果您使用的是 Linux,您可以嘗試為“網路記憶體”設置透明代理,您可以執行以下操作:

在您的“eth0 代理 eth1”框中:

$ iptables -t mangle -A PREROUTING -j ACCEPT -p tcp --dport 80 -s web-cache-box
$ iptables -t mangle -A PREROUTING -j MARK --set-mark 3 -p tcp --dport 80
$ ip rule add fwmark 3 table 2
$ ip route add default via web-cache-box dev eth1 table 2

然後在“網路記憶體”框中:

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

上面的範例使用策略路由。我們用目標埠 80 標記所有包,而不是用“3”標記來自 web-cache-box,當需要進行路由決策時,我們添加了一條規則,告訴標記為“3”的包應該轉到表“2”並在表“2”我們設置了一個預設網關,即“web-cache”。當包到達“網路記憶體”時,數據包被重定向到 Squid/XX 埠,在我的範例中為 3128。所有這些都無需重寫/NATing。

等等。

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