0

我有一个 php 应用程序 [主要是 REST],它在 Linux 虚拟机中的 Apache 之上运行。这个应用程序做了很多数据查询,我已经开始遇到性能问题。

对我来说,解决这个问题的一种方法是使用 NodeJs 异步模式。我还计划实现 websockets。但问题是 php 中的代码量非常大。在 Node.js 中重写需要几个月的时间。

是否有中间立场来完成重写。我可以在 Node 中处理与浏览器的交互以及在 php cli 中与数据库的交互。和 Node 可以调用具有近似 Apache 环境的 php cli?

我正在为 REST API、HTTP Basic Auth 和 PHP 会话、$_GET 和用于 GET 请求的额外过滤器的变量使用 Slim PHP 框架。我不太了解 Slim 的内部运作。但我认为这取决于 HTTP 请求和响应的 Apache-PHP 实现。

如何将消息正文 [post, put] 发送到 99% 的情况下为 JSON 的 php cli(我也有文件上传,但现在可以忽略)。我可以让 php cli 将 json 输出放在 STDOUT 中并从那里解析。

真正的问题是如何在不更改大部分代码库的情况下移除对 php apache SAPI 的依赖,以及如何将其与 Node.js 集成。在这种情况下,是否有任何工具 lib 可以提供帮助。

还有一个问题,NGinx 能以某种方式帮助我吗?

**注意 - 我对节点的了解仅限于一些有趣的脚本和自定义 linting、模板编译、浏览器端代码的测试脚本。

4

1 回答 1

2

首先你可以把 nginx 放在 Apache 前面。这将允许您通过有选择地路由到一个或另一个来缓慢地将您的操作转换到节点。

或者,您可以将 node 放在前面并使用node-http-proxy和 express(例如)选择性地代理到 Apache。我自己没有尝试过,但我想它应该可以工作。

您还可以/或使用dnode从节点调用 php 函数。zeromq也是一种选择。

于 2013-10-15T19:16:35.587 回答