-1

Web サイトのコンテンツを取得するサードパーティ アプリケーション (説明用の http 取得アプリケーション) を実行しているローカル サーバーがあります。

送信要求ヘッダーを変更し、将来的にいくつかのカスタム ACL を適用するために、プロキシとして機能する apache2 透過プロキシをローカル マシンに作成したいと考えています。

次に、iptables を使用してすべての http リクエストをこのローカル プロキシにルーティングし、フェッチ アプリケーションに代わって Web サイトをフェッチします (アプリケーションにリダイレクトを発行する必要はありません)。

以下の 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>
4

1 に答える 1

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 はフェッチ アプリケーションのユーザー ID です。

于 2014-12-30T17:57:24.663 に答える