Apache,NodeJS和socket.io:使用Apache或NodeJS作为反向代理?

时间:2012-05-28 12:17:29

标签: apache node.js proxy socket.io reverse

我有一个Apache-Server在端口80上运行我的PHP应用程序.PHP-Application通过端口3000与NodeJS-Server(socket.io)通信。

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

使用Apache(mod_proxy)作为反向代理将NodeJS-Data转发到NodeJS是否更好(在性能方面)或者在NodeJS上做得更好(例如使用https://github.com/nodejitsu/node-http-proxy)因此NodeJS在端口80上运行并将所有非NodeJS-Data内部转发到Apache(然后在另一个端口上运行)?

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

1 个答案:

答案 0 :(得分:2)

如果您只是需要代理,您应该使用HAProxy之类的东西,这是专为此设计的。

Apache在代理方面并不擅长,因为它必须为每个连接分叉或启动一个新线程(从而失去Node的所有好处)。

除此之外,如果我需要优化的话,我根本不会使用Apache,NGINX作为服务器要好得多(例如,它甚至比Node.js更快地提供静态文件)。

如果您正在寻找Node.js代理解决方案,HTTP-Proxy和Bouncy是最好的:

资源: