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

Php 并行运行Node.js和apache的技术方面,php,apache,node.js,port,Php,Apache,Node.js,Port,今天早些时候,我问了一个关于Exchange的问题: 我的最终应用程序可以被认为是一个社交网络,我想在其中拥有聊天功能和正常状态更新功能 对于聊天功能,我希望使用Node.js,因为我希望将数据从服务器推送到客户端,而不是频繁轮询服务器。对于状态更新,我想要一个普通的apache和PHP安装,因为我更熟悉这一点,不明白为什么要使用Node.js 然而,这意味着我必须并行运行Node.js和apache。虽然这是可能的,并且根据Programmers.SE上的答案不被认为是不好的做法,但我确实看到

今天早些时候,我问了一个关于Exchange的问题:

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

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

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

  • 我需要打开两个端口-这可能会导致开放网络出现问题,因为这些网络没有打开所有端口

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

我不太在乎第二个,更在乎第一个。那么,真的没有在一个端口上结合这两种功能的解决方案吗


或者是否有一些端口的解决方法?例如,我可以将
subdomain.domain.com:80
重定向到
domain.com:x
其中
x
是Node.js的端口吗?这可能解决我的问题吗?这个解决方案是在中给出的,但是我该如何实现它呢?

您可以通过Apache(使用)将所有请求代理到node.js,这样在打开多个端口时就不会有任何问题。这还允许将所有内容重新映射到子文件夹或子域


这在性能方面不是最好的解决方案,但如果您在共享的web空间中,这并不重要。(共享服务器通常速度非常慢,如果你有更大的用户群,你迟早需要移动到一个单独的服务器。)

正如@TheHippo所说,你可以使用Apache的mod_代理来实现这一点

但是,如果您使用FastCGI运行PHP>=5.4,则可能会运行得更快。 nGinx也是一个比apache更好的转发代理,它基于事件的模型与Node基于事件的I/O一致。使用propper设置,这可能意味着更好的总体性能


如果您处于受限环境(如共享服务器或无法更改Web服务器),则应使用Apache和mod_proxy。

谢谢您的回答!我不允许打开共享服务器上的任何端口,甚至连intern都不允许,所以这是不可能的(Node.js给出了一些错误,不记得确切是哪个)。但我并不真的费心去买副总裁。你说这不是最好的解决方案,但从性能角度来看,还有什么更好的解决方案吗?:)或者,除了不同的端口之外,没有更好的方法了吗?如果您通过Apache代理,那么从技术上讲,node.js的事件循环将失去大部分好处。如果你买了VPS,可以用nginx。好的!因此,这将是一个更好的选择;您能详细说明一下如何做到这一点(或者链接也可以)吗?我们如何在nginx服务器@Borslav Sabev上运行php?