0

我正在尝试从在同一台机器上运行的 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>
4

1 回答 1

1

啊,找到答案了!:D 这不是错误的 apache 或 JBoss 配置,而是 SE Linux 造成了所有麻烦。我不得不让 httpd 发出网络请求,如此处所述(http://wiki.apache.org/httpd/13PermissionDenied

于 2012-11-11T19:56:25.037 回答