gpt4 book ai didi

php - 如何将 Node.js 服务器连接到 Apache 服务器?

转载 作者:搜寻专家 更新时间:2023-11-01 00:18:59 26 4
gpt4 key购买 nike

我想使用 Socket.ioNode.js做推送通知。最终目标是做一些类似于 Stackoverflow 对他们的评论所做的事情,以通知人们有新评论。

我的站点使用 PHP 并在 EC2 实例上的 Apache 上运行。我听说 Apache 不能很好地处理并发性,所以我有兴趣使用 Node 来处理大量的同步持久连接。我想有两种解决方案:

  1. 将 Node 放在与 Apache 相同的实例上并代理这两个服务器
  2. 将 Node 放在一个单独的实例上

在任何一种情况下,我都不知道这两个服务器之间的连接在编程上看起来如何。例如,当 WebSockets/Node 处理消息的发送/接收时,我需要将这些消息存储在我的 MySQL 数据库中,这需要一些 PHP 代码,是/否?另外,如何在我的 PHP 页面上收到消息?通过 $.post 到这样的 url,http://mysite/receiver.php 会被我的 Apache 服务器解析吗?

我很乐意看到评论或代码来帮助我更好地理解这一点。

最佳答案

  • 您可以在不同的端口运行不同的服务器。
  • 为了让服务器以您可以使用 Sessions/MySQL/flat files/Cache/json/xml... 的方式进行通信
  • 您可以将消息存储在任何您想要的地方,对此没有限制,存在用于 node.js 的 MySQL 模块,存在用于 node.js 的内存缓存模块等等,不需要 PHP 代码,它可选查询数据库。
  • 您的 PHP 页面上的消息是从您的数据库中获取并呈现的,如果 node.js 将内容存储在 mysql 服务器中,您可以使用 PHP 获取它们或临时存储到一个数组并在将消息存储到数据库中时将消息推送回客户端新用户拥有“当前”内容。
  • 避免使用 ajax,因为您可以在需要时通过实时使用的 websocket 将数据流式传输到客户端。

-- 已编辑
关于 How to use vhosts alongside node-http-proxy? 的一些附加信息Timothy Strimple 在评论中提供的链接,谢谢

一些MySQL驱动可以在这个问题What MySQL drivers are available for node.js?中找到

关于配置端口:
- 在 apache 上你需要手动编辑 httpd.conf 来定义默认端口
- 在 node.js 上事情更简单,你可以在代码中定义一个端口 Using node.js as a simple web server

   var connect = require('connect');
connect.createServer(
// .. code
).listen(PORT);

希望对你有帮助

关于php - 如何将 Node.js 服务器连接到 Apache 服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11634233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com