2017-01-16 16 views
2

仮想サーバーでは、他のWebサイトの横にeXist-dbアプリを実行する必要があります。私のアプリでは、ログインとログアウトのためにクッキーが使用されています。ApacheでVirtualHostを正しく設定する方法(eXist-dbアプリで使用)

これらの設定は、Firefoxのために働く、すべてが期待通りに動作します:

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName my-app.my-domain.com 
    ProxyRequests off 
    ProxyPass/http://xx.xx.xx.xx:xxxx/exist/apps/my-app/ 
    ProxyPassReverse/http://xx.xx.xx.xx:xxxx/exist/apps/my-app/ 
    ProxyPassReverseCookiePath/http://my-app.my-domain.com 
</VirtualHost> 

私は、これらの設定は少し奇妙に思える可能性が知っているが、彼らは単にのために働くの上に私が述べたように、彼らは私が見つけることができる最高であり、 Firefox。これらはおそらく、eXist-dbアプリケーションでの使用に特有のものです。 (私はthis solutionに触発されました)

しかし、IE 11にはそれに何らかの問題があります。私は他の安全なページ(または同じ!)を訪問しようとするとすぐに、1ページごとにログインすることができます、私はログオフしています。私はProxyPassReverseCookieDomain可能性について知っていますが、それをどのように使用するのか手がかりがありません。私はlocalhost my-domain.comと同様の試みは何も働いていない。

アプリのコントローラーでは、すべてのページの適切なログインとログアウトに必要なすべてのキャッシング(no-cache, no-store, must-revalidate)を無効にしています。

apache2 -Sログ:ProxyPassReverseCookiePath /exist /

私はクッキーのパラメータをチェックからFirebug経由示すことを考え出し:

[Mon Jan 16 16:09:10.287083 2017] [core:warn] [pid 16104] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined 
[Mon Jan 16 16:09:10.287698 2017] [core:warn] [pid 16104] AH00111: Config variable ${APACHE_PID_FILE} is not defined 
[Mon Jan 16 16:09:10.288003 2017] [core:warn] [pid 16104] AH00111: Config variable ${APACHE_RUN_USER} is not defined 
[Mon Jan 16 16:09:10.288220 2017] [core:warn] [pid 16104] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined 
[Mon Jan 16 16:09:10.288490 2017] [core:warn] [pid 16104] AH00111: Config variable ${APACHE_LOG_DIR} is not defined 
[Mon Jan 16 16:09:10.293480 2017] [core:warn] [pid 16104:tid 140486280820608] AH00111: Config variable ${APACHE_LOG_DIR} is not defined 
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf: 
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR} 
+1

興味深いのは、単一のバックエンドでセッションが失われていることです。バランサでこの動作を確認すると予想されます。それにもかかわらず興味深い。 –

+0

現時点では、このホストは2つのうちの1つです。もう1つは、Harp.jsで提供される非常に単純な静的Webです。 –

答えて

1

場所セクションに設定プロキシ設定をお試しください。 URLの/exist部分は、コントローラによって書き換えられ、アドレスバーには表示されないため、不審な部分ではありませんでした。

JSESSIONIDのパス値は/、ログインクッキー/existです。今は両方とも/です。

1

ソリューションです

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName my-app.my-domain.com 
    ProxyRequests off 
    <Location /> 
     ProxyPass http://xx.xx.xx.xx:xxxx/exist/apps/my-app/ 
     ProxyPassReverse http://xx.xx.xx.xx:xxxx/exist/apps/my-app/ 
     ProxyPassReverseCookiePath http://my-app.my-domain.com 
    </Location> 
</VirtualHost> 
+0

ありがとう!しかし、Firefoxではまだ動作しますが、Internet Explorerでは動作しません。クッキーの最後のパラメータには2つまたは3つの引数が必要です。私は元の設定と同じものを使用しました。 –

関連する問題