Node.js不提供超过5个浏览器选项卡

时间:2014-05-14 18:03:43

标签: node.js apache

我正在使用Apache,Mysql和Node.js来运行一个动态网站,该网站使用长轮询来更新内容。

主要语言是PHP,但是为了更新内容我使用Node.js

我在端口 9000上运行 Node.js 服务器

Apache 正在端口 80

上运行

我代理任何到达Apache(到Node.js站点)到端口9000的请求,下面是该网站的网站可用部分(www.example.com):

<VirtualHost *:80>
    .
    .
    ProxyPass /node  http://localhost:9000/
    ProxyPassReverse /node  http://localhost:9000/
    .
    .
</VirtualHost>

Node.js网站:www.example.com/node /

我注意到 Node.js不能提供超过5个浏览器标签!之后它会停止更新。我读到Node.js可以服务数千个连接!如何实现高性能?

Node.js每隔2秒直接与Mysql通信以检查更新。

我应该使用 Nginx 而不是Apache吗?在端口80 上运行Webserver和Node.js是否健康?什么是最好的方式/服务?请指教,非常感谢。

2 个答案:

答案 0 :(得分:2)

  

我注意到Node.js不能提供超过5个浏览器标签!之后它会停止更新。我读到Node.js可以服务数千个连接!如何实现高性能?

你感到困惑。 Web浏览器具有最大数量的并发连接,它们将打开给定服务器(&#34; origin&#34;)。

您无法使用单个浏览器准确测试并发性。尝试加载测试工具,例如wrkapache bench

要快速证明这一点,请在每个浏览器中打开多个不同的浏览器(chrome,firefox,IE等)以及一些标签,这应该说明这里发生了什么。

答案 1 :(得分:2)

您还需要检查Apache配置,以帮助弄清楚为什么这么少的连接可以做出来。根据您的配置(例如使用Apache mpm-prefork模块),您可能只有5个可以作为可能连接的插槽 - 特别是在开发系统上。

Apache,使用Mod-PHP经常在Apache上使用分叉模型进行设置。例如,在Ubuntu上,您可以登录/etc/apache2/mods-enabled目录,查看正在使用的mpm*.confmpm*.load系统。

从长远来看,NginX通常会是一个更好的主机,当然还有大量的连接。