ホームページ >バックエンド開発 >PHPチュートリアル >Apache を使用して Tomcat アプリケーションを構成し、php forum-discuz を統合する
最近 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/は、Web サイトのルート ディレクトリにアクセスするとプロキシ アクセスが実行されることを意味し、アクセスされるアドレスは Tomcat アプリケーションのアドレスです: パスの末尾は / で終わる必要があります。そうしないと通常のアクセスは不可能になります
ProxyPassReverse / http://example.com:8101/myweb/
Cookie パスを構成する必要があります。構成しない場合、Web サイトのセッションが失われ、Cookie を保存できません。ここでの構成は、ルート ノードの Cookie パスが / であることを示しています (次のような他のパスとして構成することもできます)。 )
ProxyPassReverseCookiePath / /
ProxyPassReverseCookiePath / /mywebは、/bbs ディレクトリにプロキシ アクセスがないことを意味します。これは、bbs が直接アクセスに Apache を使用することを意味します。これが設定されていない場合、アイテム、アクセス /bbs は tomcat を使用してアクセスされます
後。セットアップすると、期待どおりに正常にアクセスできます。ただし、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 を介したアクセスを維持できますセッションの一貫性
この記事は、情報の調査と実践による私の個人的な経験に基づいています。間違っている点(またはより良い解決策)がある場合は、ご指摘ください。