我正在尝试从在同一台机器上运行的 Apache 2 实例连接到我的 JBoss 7.1 服务器。到目前为止,我已经成功地使用 AJP 协议和端口 8009 在两个实例之间建立了连接。我的问题是 JBoss 服务器似乎不可能同时监听两个 AJP 端口。我已经将 JBoss 设置为监听端口 8009 和 8010,其中端口 8010 上的 AJP 设置为“安全”并且只能通过我的 Apache HTTPS VirtualHost 访问。
奇怪的是,我只能将 ProxyPass 与 ajp 而不是 http(s) 一起使用,每次尝试我都会得到一个 HTTP 503 错误作为回报。
我是否误解了什么,或者这是不可能的?
我在 JBoss 服务器 (standalone.xml) 上的设置:
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
[snip]
<socket-binding name="ajp" port="8009" />
<socket-binding name="ajps" port="8010" />
<socket-binding name="http" port="8080"/>
<socket-binding name="https" port="8443"/>
[snip]
</socket-binding-group>
<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtual-server="default-host" native="false">
<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>
<connector name="AJP" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/>
<connector name="AJP-Secure" protocol="AJP/1.3" scheme="https" socket-binding="ajps" secure="true"/>
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true"/>
<virtual-server name="default-host" enable-welcome-root="true">
<alias name="localhost"/>
</virtual-server>
</subsystem>
我的 Apache 设置:
<VirtualHost *:80>
[snip]
ProxyRequests off
<Location /jboss/> # Works
ProxyPass ajp://127.0.0.1:8009/
ProxyPassReverse ajp://127.0.0.1:8009/
</Location>
</VirtualHost>
<VirtualHost *:443>
[snip]
ProxyRequests off
<Location /jboss/> # Return HTTP 503
ProxyPass ajp://127.0.0.1:8010/
ProxyPassReverse ajp://127.0.0.1:8010/
</Location>
</VirtualHost>