如何为同一域但不同的上下文路径设置 2 个不同的 web/app 服务器?
How to have 2 different web/app servers for the same domain but different context path?
我是 运行 我域上的标准 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 是简单的解决方案。谁能反映我的要求和 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>
...并将其绑定到套接字...
<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 reload
或 service 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
中编辑
我是 运行 我域上的标准 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 是简单的解决方案。谁能反映我的要求和 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>
...并将其绑定到套接字...
<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 reload
或 service 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
中编辑