Apache 反向代理与 Wildfly?

Apache 反向代理与 Wildfly?

我在 Ubuntu 14.04 系统上安装了 Apache 和 Wildfly。现在我想让 Wildfly(本地http://localhost:8080)可从 Apache(http://webserver/wildfly)访问。我该怎么做?

到目前为止,我已经启用了两个模块:proxyproxy_http。并且我在文档末尾添加了/etc/apache2/apache2.conf

ProxyRequests off
ProxyPass /wildfly/ http://localhost:8080/
ProxyPassReverse /wildfly/ http://localhost:8080/

编辑:

现在一半可以工作了,但路径转换不正确。我在 Wildfly 上运行的一个应用程序的路径是:

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>

参考 : Jboss Doc - 第 6 章设置 Web 应用程序的上下文根

相关内容