并行运行Node.js和apache的技术方面

9 php apache port node.js

今天早些时候,我在程序员StackExchange上问了一个问题:并行运行Node.js和apache是​​不好的做法吗?

我的最终应用程序可以被视为一个社交网络,我希望在其中拥有聊天功能和正常状态更新功能.

对于聊天功能,我想使用Node.js,因为我想将数据从服务器推送到客户端,而不是频繁地轮询服务器.对于状态更新,我想要一个普通的apache和PHP安装,因为我对此更熟悉,并且不明白为什么我会使用Node.js.

但是,这意味着我必须并行运行Node.js和apache.虽然根据Programmers.SE的答案,这是可能的并且不被认为是不好的做法,但我确实看到了一些技术问题:

  • 我需要打开两个端口 - 可能会给没有打开所有端口的开放网络带来问题

  • 我不能使用我的共享服务器,因为我不允许在那里打开端口,所以我必须购买VPS

我不太关心第二个,更多关于第一个.那么真的没有解决方案将两个功能组合在一个端口上吗?

或者端口有一些解决方法吗?难道我举个例子,重定向subdomain.domain.com:80domain.com:x那里x是Node.js的港口?这可能并解决我的问题吗?这个解决方案在这个程序员.S答案中给出,但我将如何实现它呢?

Bor*_*bev 2

正如 @TheHippo 所说,你可以使用 Apache 的 mod_proxy 来做到这一点。

然而, nGinx可能会运行得更快,特别是当您使用 FastCGI 运行 PHP >= 5.4 时。nGinx 也是比 apache 更好的转发代理,它的基于事件的模型与 Node 的基于事件的 I/O 一致。通过正确的设置,这可能意味着更好的整体性能。

如果您处于受限环境中(例如共享服务器或无法更改网络服务器),那么您应该使用 Apache 和 mod_proxy。