如何为同一个域但不同的上下文路径设置2个不同的Web / app服务器?

时间:2015-03-09 06:40:14

标签: 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服务器并保持Apache提供的 / p / 服务,对吧?

我假设mod_proxy(http网关)和mod_proxy_ajp是简单的解决方案。任何人都可以反映我的要求和mod_proxy / ajp功能吗?

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

我不要求加载balacing或其他任何复杂的东西。只是两个上下文的分裂。只能通过互联网访问80端口。

谢谢。

1 个答案:

答案 0 :(得分:1)

好。这是决议。

我在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>

...并将其绑定到套接字......

<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 Virtual Host Domain的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中编辑。 p>