使用 IPtables 防止 squid 转发循环

使用 IPtables 防止 squid 转发循环

我有一个网络应用程序,我想限制文件上传大小。

我想尝试使用 squid 来实现这一点,通过它的指令 request_body_size_max。

我的 Web 服务器在端口 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

当我访问网络服务器时,squid 日志中的结果是:

Forwarding loop detected.

我需要做什么来防止这种情况发生?谢谢...

答案1

问题是当 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 服务器?

相关内容