2012-01-18 21 views
1

別のPCのtomcatで実行されているアプリケーションのプロキシとしてApacheを設定することができません。すべてが最初のアプリケーション、WebApp1で動作しているようです。しかし、左のProxyPassReverseCookiePathは機能していません。 ProxyPassReverseCookiePathは、最初のアプリケーションでのみ動作します。他のアプリケーションにアクセスすると、jsessionidがURLに追加されます。 WebApp2とWebApp3を見逃して修正する方法は?おかげApacheプロキシクッキーは最初のアプリケーションでのみ動作します

のhttpd-vhosts.con:クッキーパスの場所のディレクトリに変更することで、それを解決

NameVirtualHost *:80 
<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ProxyRequests off 
    ProxyPreserveHost on 

    <Proxy *> 
     Order deny,allow 
     Allow from all 
    </Proxy> 

    ProxyPass /WebApp1/ ajp://192.168.1.98:8009/WebApp1/ 
    ProxyPassReverse /WebApp1/ ajp://192.168.1.98:8009/WebApp1/ 
    ProxyPassReverse /WebApp1/ http://192.168.1.98:8080/WebApp1/ 
    ProxyPassReverseCookiePath /WebApp1 /WebApp1/ 

    ProxyPass /WebApp2/ ajp://192.168.1.98:8009/WebApp2/ 
    ProxyPassReverse /WebApp2/ ajp://192.168.1.98:8009/WebApp2/ 
    ProxyPassReverse /WebApp2/ http://192.168.1.98:8080/WebApp2/ 
    ProxyPassReverseCookiePath /WebApp2 /WebApp2/ 

    ProxyPass /WebApp3/ ajp://192.168.1.98:8009/WebApp3/ 
    ProxyPassReverse /WebApp3/ ajp://192.168.1.98:8009/WebApp3/ 
    ProxyPassReverse /WebApp3/ http://192.168.1.98:8080/WebApp3/ 
    ProxyPassReverseCookiePath /WebApp3 /WebApp3/ 
</VirtualHost> 

答えて

2

AJPの利点の

ProxyPassReverseCookiePath /WebApp1/ http://192.168.1.98:8080/WebApp1/ 
+0

リバースプロキシの背後にあるWordPressにはいくつか問題がありました。ほとんどのものは最初の設定後にうまくいきましたが、まだまだやっていません。これは、クッキーとは関係があることを知るために私に長い時間をかけた。このソリューションはまさに私が逃していたものでした。ありがとう! – marsze

1

一つは、それが元のURLを送信していることですWebアプリケーションに送信します。従って、ProxyPassReverseProxyPassReverseCookiePathによる変換は必要ではないので、それらの指示文をそのまま残すことができます。

ProxyPassReverseCookiePathは、Webアプリケーションに由来するCookieのパラメータpathを単に置き換えます。あなたの場合のように、Webアプリケーションがアクセスするパスは、Apacheが利用できるパスと同じです。クッキーパス内のパスを置き換える必要はありません。

私はそれが/WebApp1/によって/WebApp1を置き換えるので、あなたの元のコードが動作しない理由があるので、あなたは、ブラウザを混乱させる可能性があるクッキーのパスに/WebApp1//で終わるかもしれないと想像できます。 (私は、Apacheがこの場合に変換を行うかどうか、またブラウザを混乱させるかどうかは確信していません)Apacheはディレクティブに無効なパスが含まれているため無視したため、あなたが投稿した解決策がうまく動作すると思います。 (私は、Apacheがこの場合どのように動作するのかもよく分かりません)

+0

ajpは元のURLを送信します。 'ProxyPreserveHost'がどのように設定されているかに依存しませんか? –

関連する問題