2012-02-16 12 views
1

複数のURLがサーバーに送信されています。トラフィックをリダイレクトするユーザーのホストヘッダーにしたい。 Apacheを使用して、これらの要求をファイアウォール内のさまざまなサーバーにリダイレクトしようとしています。私は解決策の一部を手に入れましたが、私は何か不足しているようです。Apacheホストヘッダープロキシ

たとえば、http://hostHeader1.mycompany.comは、hostHeader1へのリクエストを処理するファイアウォール内のサーバーにリダイレクトする必要があり、その結果をクライアントに返す必要があります。 http://hostHeader2.mycompany.comは、hostHeader2の要求を処理するファイアウォール内のサーバーにリダイレクトする必要があります。

<VirtualHost *:*> 
ProxyPreserveHost On 
ProxyPass/http://hostHeader1Handler/ 
ProxyPassReverse/http://hostHeader1Handler/ 
ServerName hostHeader1.mycompany.com 
</VirtualHost> 

すべてのヘルプ感謝:など

は今のところ、私はそれがhttp://hostHeader1Handler/へのすべてのトラフィックをリダイレクトし、次のことを持っているが、。

Scott

+0

私が作ったよりも簡単になりました。 'RewriteEngine On' ' RewriteCond%{HTTP_HOST}^hostHeader1¥.mycompany¥.com $ [NC] ' ' RewriteRule(。*)http:// internalServerNameOrIP $ 1 [P]これをあなたのhttpd.confに入れてください: ' Scott –

+0

これに書き換えルールを使用しないでください!バーチャルホストは、あなたがやろうとしているものだけを対象としています。 @bitcloudの答えを見て、それを展開してください。 – Frans

答えて

2

これは、おそらく初めての、または唯一の仮想ホストです。前に別の仮想ホストを追加するだけです。次に、これが新しいデフォルトになります。

NameVirtualHost *:* 
<VirtualHost *:*> 
    ServerName your.default.domain.de 
DocumentRoot /var/www/pathToHTML 
</VirtualHost> 

<VirtualHost *:*> 
    ProxyPreserveHost On 
    ProxyPass/http://hostHeader1Handler/ 
    ProxyPassReverse/http://hostHeader1Handler/ 
    ServerName hostHeader1.mycompany.com 
</VirtualHost> 
+0

OPはおそらく追加する必要があります ' はProxyPass /のhttp:// hostHeader2Handler/ にProxyPassReverse /のhttp:// hostHeader2Handler/ ServerNameのhostHeader2.mycompany.com の' そして、私はこの場合に 'ProxyPreserveHost'を望んでいないと思います。 – Frans