我正在设计一个长轮询应用程序,可以非常快速地向很多用户广播小的变化.该应用程序将与运行相当标准的cms的网站串联运行.它们都将在一台服务器上运行,并且数据库也是如此.
我非常喜欢LAMP环境,我绝对是开发人员而不是系统管理员.那说我不怕尝试一些新东西.
我花了一天时间研究我的选择,我希望人们可以回答一些问题并给我一些建议.
我把它缩小到这些:
A. Apache and PHP for the website,Node.js for the app
B. Nginx and PHP for both the website and app
C. Nginx and PHP for website,Nginx and Node.js for the app
所以问题:
> Nginx如何处理PHP的非多线程;). PHP是否会成为Apache长期轮询的瓶颈?
>我听说它建议我在Apache和Node.js之前使用Nginx作为反向代理,这是一个比Nginx更好的解决方案吗?如果是这样,为什么?
>您使用/推荐哪个选项?
请记住,设置的简易性可能是一个因素,我对Apache非常熟悉,但我只使用Node,而且我从未安装过Nginx.
如果有人需要,我会很乐意提供澄清.
最佳答案
我会使用选项C:并建议选项D:
原文链接:https://www.f2er.com/nginx/434918.html选项D:
>使用HAProxy进行Keepalived以实现负载均衡(LB)
> Nginx用于静态和PHP脚本,使用PHP-FPM,APC和Redis进行缓存
> Node.js(和其他节点模块)用于动态实时内容
我们目前使用选项D的前两部分,来自LAMP背景,目前正在实施Node.js来为我们的一些(系统征税)实时应用程序提供服务. HAProxy正是如此:将流量代理到我的所有后端服务器,而不是让Nginx执行它.原因是,我们有许多后端HTTP / TCP /其他服务器,我们需要对这些服务器进行冗余和自动故障转移. LB易于实现并且运行良好.
到目前为止,效果很好.就个人而言,由于缺乏文档,节点学习曲线到目前为止一直很困难,但那里有一个非常有活力的社区.
希望这可以帮助.