在端口80而不是3000上运行faye(for node.js)

时间:2014-03-25 21:17:34

标签: node.js apache reverse-proxy faye

我的节点服务器和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做过同样的事情?

1 个答案:

答案 0 :(得分:0)

我发现了问题所在。如果其他人有这个问题,这是交易:

Apache 2.2并不真正支持代理Web套接字。有一个模块可用,但它需要你手动重建apache,这不是我想在这里采取的路线。

我所做的是为nginx交换apache,即使与反向代理结合使用也能很好地支持Web套接字。