apache - 如何为同一域但不同的上下文路径设置 2 个不同的 Web/应用程序服务器?

标签 apache http wildfly-8

我在我的域上运行一个标准的 PHP 应用程序并将其设置为 www.johndoe.com/p/

现在,端口 80 显然由这个 HTTP 服务器(Apache,而不是 Tomcat)提供服务。另外,我在这台服务器上的端口 8000 上安装了 Wildfly 8.2。如何在同一个域上使用 Wildfly WAR 应用程序,例如www.johndoe.com/w/?

我肯定有一种方法可以将 /w/ 请求重定向到 Java EE 服务器并保持 /p/ 由 Apache 提供服务,对吧?

我假设 mod_proxy(http 网关)和 mod_proxy_ajp 是简单的解决方案。谁能反射(reflect)我的要求和 mod_proxy/ajp 功能?

ProxyPass /w ajp://localhost:8000/w
ProxyPassReverse /w http://www.johndoe.com/w

我不需要负载平衡或任何其他复杂的东西。只是两个上下文的拆分。只能从 Internet 访问端口 80。

谢谢。

最佳答案

好的。这里是分辨率。

我向 Wildfly 8.2 standalone.xml 添加了以下 ajp-listener...

<server name="default-server">
    <http-listener name="default" socket-binding="http"/>
    <ajp-listener name="ajp" socket-binding="ajp"/>
    <host name="default-host" alias="localhost">
    <location name="/" handler="welcome-content"/>
        <filter-ref name="server-header"/>
        <filter-ref name="x-powered-by-header"/>
    </host>
</server>

...并将其绑定(bind)到套接字...

<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
    <socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
    <socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
    <socket-binding name="ajp" port="${jboss.ajp.port:28009}"/>
    <socket-binding name="http" port="${jboss.http.port:28080}"/>
    <socket-binding name="https" port="${jboss.https.port:28443}"/>
    <socket-binding name="txn-recovery-environment" port="4712"/>
    <socket-binding name="txn-status-manager" port="4713"/>
    <outbound-socket-binding name="mail-smtp">
        <remote-destination host="mail.johndoe.com" port="25"/>
    </outbound-socket-binding>
</socket-binding-group>

调用 service wildfly reloadservice wildfly restart。致 Wildfly 监听 AJP 请求。

最后,将以下内容添加到 Apache 虚拟主机域的 http.conf 文件中:

ProxyPass /w ajp://127.0.0.1:28009/w
ProxyPassReverse /w ajp://127.0.0.1:28009/w

同样对于 Apache,使用 service apache2 reload 重新启动。

小心。在 Parallels Plesk 中,必须在/var/www/vhosts/system/johndoe.com/conf/http.conf 中编辑虚拟主机配置文件,而不是在/var/vhosts/johndoe.com/conf/http.conf

关于apache - 如何为同一域但不同的上下文路径设置 2 个不同的 Web/应用程序服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936419/

相关文章:

ubuntu - Wildfly 8.1 的 Intellij IDEA 服务器配置权限问题

apache - 多个zookeeper服务器启动问题

apache - htaccess 缺少 www

apache - 摆脱 Apache 虚拟主机的结束正斜杠

http - Angular : Custom headers are ignored by $http and $resource. 为什么?

deployment - 由 : org. dom4j.DocumentException 引起 : org. dom4j.DocumentFactory 无法转换为 org.dom4j.DocumentFactory

apache - 无法浏览到我的 EC2 实例

java - 如何在我的 Android 应用程序中将 web 链接中的 dat 文件下载到 SD 卡中的路径中?

php - 使用 Zend 进行 curl http 身份验证

utf-8 - 自动识别wildfly10中的mime类型