http://localhost:8080
Ubuntu 14.04 システムに Apache と Wildfly の両方をインストールしています。次に、Wildfly (ローカル) を Apache ( ) からアクセスできるようにしたいと思いますhttp://webserver/wildfly
。どうすればよいでしょうか?
これまで、 と の 2 つの mod を有効にしました。proxy
またproxy_http
、ドキュメントの最後に以下を追加しました/etc/apache2/apache2.conf
:
ProxyRequests off
ProxyPass /wildfly/ http://localhost:8080/
ProxyPassReverse /wildfly/ http://localhost:8080/
編集:
今では半分は動作しますが、パスが正しく変換されていません。Wildfly で実行されているアプリの 1 つへのパスは次のとおりです。
http://webserver/wildfly/testproj/Index.xhtml
ただし、そのページ上のすべてのリンクは次のように処理されます。
http://webserver/testproj/Page1.xhtml
http://webserver/testproj/Page2.xhtml
http://webserver/testproj/Page3.xhtml
むしろこうです:
http://webserver/wildfly/testproj/Page1.xhtml
http://webserver/wildfly/testproj/Page2.xhtml
http://webserver/wildfly/testproj/Page3.xhtml
Wildfly をローカルで実行すると、すべて正常に動作します。これは、Apache リバース プロキシ構成にエラーがあるはずだと私に思わせます。それは正しいですか? Apache が正しいアドレス/リンクを解析するには、何をする必要がありますか?
答え1
問題が解決したことを願っていますが、この質問に対する回答を必要としている他の人がいる場合に備えて、ここに解決策があります。
EARファイル外にデプロイされるWebアプリケーションの場合(WARデプロイメント)
web-infフォルダ内
MyApp/src/main/webapp/WEB-INF/
この内容の jboss-web.xml ファイルを追加します。/ はルート デプロイメントです。これをルートとしてデプロイする場合は、"/" を "testproj" に変更するだけです。
<jboss-web>
<context-root>/</context-root>
</jboss-web>
EAR ファイル
公式ドキュメント(リファレンスを確認してください)によると、EAR ファイル内では、コンテキスト ルートが application.xml ファイルで定義されていることがわかります。次の例では、web-client.war のコンテキスト ルートは bank なので、アプリケーションは /bank に設定され、URL は www.domaine.com/bank になります。
<module>
<ejb>bank-ejb.jar</ejb>
</module>
<module>
<web>
<web-uri>web-client.war</web-uri>
<context-root>bank</context-root>
</web>
</module>