使用mod_proxy_ajp的大气2.1.2 + apache 2.4.6无法将请求转发给Tomcat 7

时间:2015-04-25 06:03:51

标签: apache atmosphere mod-proxy-ajp

我使用带有mod_proxy_ajp的Apache 2.4将REST请求转发给Tomcat 7.除了我使用的是Atmosphere 2.1.2和Atmosphere调用没有进入Tomcat之外,一切正常。我知道Apache有替代方法可以使用websockets(Nginx和HAProxy等),但我想知道是否有办法让它与Apache一起工作? 这是我在httpd.conf中的VirtualHost定义

<VirtualHost *:80>
    ServerName 192.168.0.100
    ProxyPass /roomky ajp://192.168.0.100:8009/roomky
    ProxyPassReverse /roomky ajp://192.168.0.100:8009/roomky/
    ProxyRequests On
    ProxyVia On

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

在Apache中:

  1. 您必须添加mod_proxy_wstunnel(也需要mod_proxy)
  2. 使用正确的websocket(WS,而不是AJP)协议添加代理规则:
    • ProxyPass / roomky ws:// localhost:8080 / roomky
    • ProxyPassReverse / roomky ws:// localhost:8080 / roomky
  3. 在Tomcat中:

    1.-在$ CATALINA_HOME / conf / server.xml

    中声明NIO连接器
    <Connector 
        protocol="org.apache.coyote.http11.Http11NioProtocol"
        port="8080"
        ...
    "/>
    

    重启两台服务器并再次测试!