【问题标题】:Apache2 Local Transparent ProxyApache2 本地透明代理
【发布时间】:2014-12-30 10:26:29
【问题描述】:

我有一个本地服务器运行一个第三方应用程序来获取网站内容(一个用于描述目的的 http 获取应用程序)。

为了修改传出请求标头并在将来应用一些自定义 ACL,我想在我的本地计算机上创建一个 apache2 透明代理,它将充当代理。

然后我可以使用 iptables 将所有 http 请求路由到此本地代理,然后该代理应代表 fetch-application 获取网站(不向应用程序发出重定向)。

下面的iptable规则将http 80端口请求重定向到apache2透明代理:

sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:3128

但是现在如何配置本地代理以透明地获取 url?

试过了,但结果是重定向循环:

<VirtualHost 127.0.0.1:3128>
    <Proxy *>
            Order deny,allow
            Allow from all
    </Proxy>
    RewriteEngine on
    RewriteRule ^/(.*) http://%{HTTP_HOST}/$1 [NC,R=302,L]
    RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [NC,P]
    ProxyPass            /  http://$1
    ProxyPassReverse     /  http://$1
</VirtualHost>

【问题讨论】:

    标签: apache mod-rewrite proxy iptables transparentproxy


    【解决方案1】:

    解决了。

    将我的重写更改为:

        RewriteEngine On
        RewriteRule ^(.*)$ http://%{HTTP_HOST}$1 [NC,P]
        ProxyPass            /  http://$1
        ProxyPassReverse     /  http://$1
        ProxyPreserveHost On
    

    还有我的 iptables 命令:

    sudo iptables -t nat -A OUTPUT -p tcp --dport 80  -m owner --uid-owner proxy -j DNAT --to-destination <ip>:3128
    

    其中 proxy 是 fetch-application 的用户 ID。

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-25
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多