0

我有带有 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>

有什么建议么?

4

1 回答 1

0

在阿帕奇:

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

在 Tomcat 中:

1.- 在 $CATALINA_HOME/conf/server.xml 中声明一个 NIO 连接器

<Connector 
    protocol="org.apache.coyote.http11.Http11NioProtocol"
    port="8080"
    ...
"/>

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

于 2015-05-15T12:49:58.047 回答