2012-05-28 52 views
1

我有一个Apache服务器80端口上的PHP应用中运行我的PHP应用中使用的NodeJS - 服务器(socket.io)通信端口超过3000Apache,NodeJS和socket.io:使用Apache或NodeJS作为反向代理?

由于防火墙的限制,我应该只使用端口80.因此,我需要指定一个类似于/ nodejs /的URL,它将在服务器内部反转为端口3000(NodeJS)。

使用Apache(mod_proxy)作为反向代理将NodeJS-Data转发到NodeJS还是更好地在NodeJS上执行(例如,使用https://github.com/nodejitsu/node-http-proxy)并因此让NodeJS运行端口80并将所有非NodeJS-Data内部转发到Apache(然后可以在另一个端口上运行)?

我可能比普通的HTTP请求有更多的socket.io调用。

回答

2

如果你只是需要代理,你应该使用像HAProxy,这是专门设计的。

Apache并不擅长代理,因为它必须为每个连接分叉或启动一个新线程(从而失去节点的所有好处)。如果我需要优化的东西,我不会使用Apache,NGINX作为一个服务器要好得多(它比Node.js更快,例如服务于静态文件)。

如果你正在寻找的Node.js代理解决方案HTTP代理和快活是最好的:

资源:

+0

谢谢。我使用node-http-proxy与路由表完成: 'var options = { 'localhost':'127.0.0.1:8000', 'localhost/nodejs':'127.0.0.1: 3000' } }; httpProxy.createServer(options).listen(80);' – helix