我正在使用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是否健康?什么是最好的方式/服务?请指教,非常感谢。
答案 0 :(得分:2)
我注意到Node.js不能提供超过5个浏览器标签!之后它会停止更新。我读到Node.js可以服务数千个连接!如何实现高性能?
你感到困惑。 Web浏览器具有最大数量的并发连接,它们将打开给定服务器(&#34; origin&#34;)。
您无法使用单个浏览器准确测试并发性。尝试加载测试工具,例如wrk或apache bench。
要快速证明这一点,请在每个浏览器中打开多个不同的浏览器(chrome,firefox,IE等)以及一些标签,这应该说明这里发生了什么。
答案 1 :(得分:2)
您还需要检查Apache配置,以帮助弄清楚为什么这么少的连接可以做出来。根据您的配置(例如使用Apache mpm-prefork
模块),您可能只有5个可以作为可能连接的插槽 - 特别是在开发系统上。
Apache,使用Mod-PHP经常在Apache上使用分叉模型进行设置。例如,在Ubuntu上,您可以登录/etc/apache2/mods-enabled
目录,查看正在使用的mpm*.conf
和mpm*.load
系统。
从长远来看,NginX通常会是一个更好的主机,当然还有大量的连接。