【发布时间】:2013-07-27 13:39:41
【问题描述】:
待办事项
我想要实现的是一个混合服务器来运行和处理我的社交网络网站的需求。
构建
我在 PHP 上创建了所有这些,数据库是 MySql,对于实时更新,我使用了 AJAX 短轮询,它每隔“x”秒检查一次新消息。但我不希望重新检查之间有时间间隔,这就是我决定使用长轮询的原因。通过Node.js+Socket.io实现。
问题
-
“NodeApp”构建完成后,我将在使用 apache 的网站上合并它。我怎样才能将它们整合在一起?例如:页面是:
- example.com/home.php #Apache
- example.com/profile.php #Apache
- example.com/messages #Node.js
如何按原样加载我的 php 页面,以及在其间的消息在 node.js 中编写以进行实时更新,就像 FB 一样。(使用 websockets 然后回退到支持的任何内容,这是使用[socket.io]) 一个小概述:http://postimg.org/image/p3vq4tkvr/
我知道的事情
- 我可以在节点中使用 http-proxy 来使用相同的 URL,但使用不同的端口。
- 我可以在 VPN 中使用两个专用 ip,一个用于 apache,一个用于 Node.js。
- 我不想在两者之间使用 iFrame。
- 我不想使用不同的端口,例如用于 node 的 www.example.com:3000 和用于 apache 的 www.example.com。
【问题讨论】:
-
它会降低我的网站性能吗?因为:“通过 Apache 传入的每个请求都会导致 Apache 线程等待/阻塞,直到从您的 Node.js 进程返回响应。”
-
是的,添加额外的代理必然会增加延迟,而 Apache 和 Node.js 都不是很擅长。如果有大量静态内容,您可能需要考虑在端口 80 上使用 Varnish 之类的东西,并让该代理同时用于 Apache 和 Node。
标签: php apache node.js social-networking long-polling