我的节点服务器和Faye配置为在端口3000上运行。我在apache中设置了以下内容,使其通过reverseeproxy在端口80上运行:
<VirtualHost *:80>
ServerAdmin spam@example.com
ServerName server.com
DocumentRoot /var/www/html/nodejs-chat
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
这很好用,除了我为Faye设置了以下设置,客户端:
var client = new Faye.Client('http://188.0.0.1:3000/faye');
因此对于使用Faye的websockets,在创建客户端时仍然使用端口3000,并且我注意到许多防火墙阻止了该连接并且我的应用程序停止工作。
我似乎无法弄清楚如何代理反向客户端代码。 我试过了:
var client = new Faye.Client('http://server.com/faye');
但这没有成功:
WebSocket连接到&#39; ws://server.com/faye'失败:WebSocket握手期间出错:意外的响应代码:400
有没有人对Faye做过同样的事情?
答案 0 :(得分:0)
我发现了问题所在。如果其他人有这个问题,这是交易:
Apache 2.2并不真正支持代理Web套接字。有一个模块可用,但它需要你手动重建apache,这不是我想在这里采取的路线。
我所做的是为nginx交换apache,即使与反向代理结合使用也能很好地支持Web套接字。