通过 Apache 反向代理 Node.js 是否有意义?

Dan*_*iel 6 proxy reverse-proxy node.js apache-2.2

性能方面,将请求从 Apache VirtualHost 重定向到 Node.js 实例是否有意义?代理是否抵消了令人敬畏的 Node.js 性能?


仅供参考:我还需要在同一台机器上解析和运行几个 PHP Web 应用程序,这是我什至考虑使用反向代理的唯一原因。

根据我的研究,Nginx 的开销较小,因此性能稍好一些,但不幸的是不支持 HTTP/1.1。

我还考虑过让 Node.js 作为反向代理并向 Apache 发送某些请求(例如,它然后处理 PHP 文件),但我听说可能存在很多安全问题。

And*_*ndy 5

您不应该使用Apache代理node.js. 的部分node速度是通过以最小的开销处理自己的套接字 I/O 获得的:这可以通过与任何其他服务器进行代理来抵消。

相反,你可以代理请求Apachenode使用优秀node-http-proxynodejitsu-第二个例子中的“设置自定义服务器逻辑独立的代理服务器”是适合你的使用情况。

编辑:其实,我成立了PHP/node安装一天使用nginx,并php-fpm有完整的说明这里。您还可以运行反向代理nginx并允许node同时处理自己的连接。


cyb*_*x86 5

我建议将 Apache 设置为 Node.js 的反向代理违背了 Node.js 的意图。Node 非常轻量级——它的开销很小。启动一个 apache 进程来处理 Node.js 流会否定使用 Node.js(本质上,您会受到 Apache 性能的限制)。

Node 有时被认为不够稳定,无法在没有监控的情况下运行,并且可能不是理想的前端。我可能建议将 Squid 或 HAproxy 放在 Node 和 Apache 的前面,允许它们中的任何一个作为您的代理,并在不同的端口(例如 8080、8081)上运行 Node 和 Apache。Squid 和 HAProxy 都具有良好的性能,应该可以满足您的需求,而不会降低后端服务器的性能。