我的所有内容都是代理正确的,因为我的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
答案 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也将解决您的问题。