最近 Web アプリケーションを開発しました。メイン Web サイトは Tomcat の Java アプリケーションに基づいており、PHP フォーラム discuz を統合する必要があります。
xamppサーバーを使用し、Apacheとphpを直接統合してdiscuzをインストールします。
ここで、www.example.com を使用して Tomcat メイン サイトにアクセスし、www.example.com/bbs を使用して discuz フォーラムにアクセスしたいと考えています
Tomcat のポートは 8101 であるため、直接アクセスすることはできませんwww.example.com 経由でアクセスするには、Apache の VirtualHost を使用して構成は次のとおりです:
<VirtualHost *:80> ProxyPass /bbs ! ProxyPass / http://example.com:8101/myweb/ ProxyPassReverse / http://example.com:8101/myweb/ ProxyPassReverseCookiePath / /</VirtualHost>
ProxyPass / http://example.com:8101/myweb/
ProxyPassReverse / http://example.com:8101/myweb/
Cookie パスを構成する必要があります。構成しない場合、Web サイトのセッションが失われ、Cookie を保存できません。ここでの構成は、ルート ノードの Cookie パスが / であることを示しています (次のような他のパスとして構成することもできます)。 )
ProxyPassReverseCookiePath / /
ProxyPassReverseCookiePath / /myweb
後。セットアップすると、期待どおりに正常にアクセスできます。ただし、http://www.example.com と http://example.com を介したセッションが一貫していないという問題があります。つまり、example.com を使用してログインした後、
www を使用します。 .example.com にアクセスすると、ログイン セッションが失われます。
Cookie のパスを見ると、セッションを維持する Cookie ドメインが異なっており、1 つは www.example.com で、もう 1 つは example.com であることがわかりました。情報を確認したところ、一貫性を保つために Cookie ドメインを
.example.com に設定する必要があることがわかりました。ドメイン名の前にドットが必要であり、www と http は追加しないでください。 。
ただし、メインサイトの Cookie は Tomcat によって設定されており、Apache を使用した設定は無効であるため、この場合、Apache 設定項目 ProxyPassReverseCookieDomain による設定は無効です。したがって、Tomcat 設定を変更し、conf/context.xml を変更する必要があります
ProxyPass /bbs !
このようにして、http://www.example.com と http://example.com を介したアクセスを維持できますセッションの一貫性
この記事は、情報の調査と実践による私の個人的な経験に基づいています。間違っている点(またはより良い解決策)がある場合は、ご指摘ください。