apache2.4.6 wstunnel代理到tomcat 7错误意外200 repsonse

时间:2014-08-28 03:09:18

标签: java tomcat apache2 proxypass

我的所有内容都是代理正确的,因为我的websockets一直给我一个意外的200响应错误。我在chrome和firefox上使用原生websockets。

我的conf文件看起来像这样

<VirtualHost example.com:80>
ServerName example.com
ProxyRequests Off
ProxyPass /websocket/ ws://localhost:8080/XXXXX/websocket/ retry=0
ProxyPassReverse /websocket/ ws://localhost:8080/XXXXX/websocket/ retry=0
ProxyPass / http://localhost:8080/XXXXX/
ProxyPassReverse / http://localhost:8080/XXXXX/
ProxyPassReverseCookiePath /XXXXX /
</VirtualHost>

这是确切的错误,所以没有混淆。

Error during WebSocket handshake: Unexpected response code: 200

1 个答案:

答案 0 :(得分:1)

我在Ubuntu 15.04上的apache2版本2.4.10中遇到了与modproxy和wstunnel模块类似的问题。我使用tcpflow来弄清楚发生了什么,看到我的HTTP代理正常工作并将所有内容发送到我的nodejs服务器,但我的websocket代理直接返回了网站/.

幸运的是,我的Debian服务器配置几乎相同,我发现唯一的区别是:

在非工作服务器上:

<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>

在工作服务器上:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Require all denied
</Directory>

我不知道为什么这在我的案例中有效,但我希望将Directory指令添加到您的VirtualHost也将解决您的问题。