1

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

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

使用 Apache (mod_proxy) 作为反向代理将 NodeJS-Data 转发到 NodeJS 是否更好(就性能而言),还是在 NodeJS 上这样做更好(例如使用https://github.com/nodejitsu/node- http-proxy),因此让 NodeJS 在端口 80 上运行并将所有非 NodeJS 数据在内部转发到 Apache(然后它将在另一个端口上运行)?

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

4

1 回答 1

2

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

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

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

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

资源:

于 2012-05-28T12:40:50.333 回答