PHP和node.js可以在同一台服务器上运行

rez*_*eza 11 php json node.js

我在后端有一个Apache和PHP的Web应用程序.我正在使用许多新功能进行增强,并考虑将node.js用于新工作.

首先,PHP和node.js可以存在于同一台机器上吗?我不明白为什么不.其次,我可以直接从Javascript调用node.js代码并返回JSON吗?

Adr*_*agg 11

是的,是的.Node和Apache/PHP可以在一台服务器上共存.

您可能遇到的唯一问题是他们不能同时监听同一个端口.默认情况下,HTTP在端口80上运行,并且任何时候只有一个进程可以在单个端口上"监听".因此,您可能必须在不同的端口(例如,8080)上运行Node应用程序,如果您的任何目标用户仅限于端口80,则可能会带来困难.

  • 我有一个简单的解决方法.我使用php来为我的React DOM提供REST API.基本上php是我的逻辑(模型和控制器)和React我的观点(当然还有路线).使用这种方法的优点是性能会提高(API可以缓存),每个第三方系统都会使用您只需开发一次的API与您通信.希望能帮助到你 :) (4认同)

tho*_*ter 6

您可以在同一服务器上甚至在同一端口上运行节点和PHP。关键是要使用像nginx这样的服务器在前端监听端口80,像往常一样在Nginx中设置PHP(使用php-fpm),并设置Node实例以在某些高端口(例如8081)上进行本地监听。

然后只需配置nginx即可使用目录名称作为过滤器将所有节点请求代理到本地主机:8081。本质上,您是在设置nginx来对待Node请求,就像对待PHP请求一样:它将它们转发给其他守护程序,然后在返回时处理响应。Nginx擅长于此并且擅长一次管理多个连接。

这样做的另一个好处是,您也可以在不同的域上拥有多个单独的Node实例,并使用常规的nginx规则来处理所有这些实例。您还可以将其与其他应用服务器(如Go编写的应用)一起运行。您也可以使其非常安全。

而且,您还可以从Nginx的可配置性,其SSL和HTTP / 2支持以及提供静态文件的巨大速度中受益,而不必从Node应用程序提供静态文件(如果您不想这样做)。