使用Apache代理将流量转发到tinyproxy

时间:2009-01-23 17:57:48

标签: apache proxy mod-proxy

我需要找到一种方法来将端口80上的某些流量代理到在单独端口上运行的tinyproxy。我们有一个客户端在一个非常严格的防火墙后面工作,只有端口80打开(并且无法访问像meebo.com这样的网站等)。我希望我可以创建一个CNAME到我们的域和apache上的虚拟主机,捕获新CNAME的请求并将流量转发到运行在同一个盒子上的tinyproxy。

我知道tinyproxy设置正常,但是,当我尝试通过Apache传递流量时,我甚至看不到任何流量。

有没有人有建议的解决方案?这是我的VirtualHost条目:

<VirtualHost *:80>
    ServerName sub.domain.com
    ProxyPass / http://127.0.0.1:50001/
    ProxyPassReverse / http://127.0.0.1:50001/
</VirtualHost>

Tinyproxy在端口50001上运行。

2 个答案:

答案 0 :(得分:0)

我认为这不可能。

ProxyPass用于Web服务器的不透明代理 - 不会重定向到代理。但它可能有效,除了AFAIK VirtualHost只能通过http请求中的Host:标头标识 - 因此只适用于真实请求。

换句话说 - 客户端将为他们想要访问的站点设置Host:标头,因此永远不会使用您的virtualHost。

答案 1 :(得分:0)

要澄清一下,您所在域名的主机名为http://sub.domain.com/ ...,并且您已通过tinyproxyhost:50001验证Tinyproxy是否为您的网站提供服务?

我会考虑在您的网关上使用iptables选择性地将目的地为端口80的sub.domain.com的NAT请求发送到端口50001上的tinyproxyhost。假设sub.domain.com位于地址12.34.56.78,并且该tinyproxy正在运行10.11.12.13:

iptables -t nat -A PREROUTING -p tcp -d 12.34.56.78 --dport 80 -j DNAT \
    --to 10.11.12.13:50001

如果你真的想继续使用Apache,你确定你已经完全启用了mod_proxy吗?确保您的配置中也包含以下内容:

ProxyRequests Off


Order deny,allow
Allow from all

尝试在此配置中访问http://sub.domain.com时会发生什么?您在Apache access_logerror_log中获得了哪些输出?