编辑:我对高可用性,性能服务器安装感兴趣。
我读了很多关于haproxy与nginx与apache等的文章,这是我的结论:
所以我的问题是,哪个设置更好?
我的设置将是2个独立的服务器与以下安装:负载平衡器,Web服务器,PHP,MySQL读取
1个单独的服务器只是MySQL写入,然后复制到2个从属MySQL读取。
你怎么看?
Haproxy和Nginx不是一回事:haproxy只处理networking, 从不触及文件系统 。 它永远不会为你提供静态内容。 另一方面,它将比Nginx和Apache等任何完整的HTTP服务器高出一个数量级。
Haproxy也是一个复杂的负载平衡器,你需要有一些使用它。
在我的情况下,我将使用nginx或Apache在单个服务器上进行多达10,000个同时连接,或者使用一些简单的设置,因为它可以很好地完成这项工作。 对于更多涉及的体系结构(许多服务器,高吞吐量),像Haproxy这样的专用负载均衡器是可取的。
Nginx与Apache是一个争议点恕我直言。 我可以扩展到一个体面的服务器上的10,000个并发客户端(比如说4核心和4G内存),如果Nginx在资源方面稍微轻松一点,那么大多数情况下应用程序(Rails,Django,PHP ,无论)是90%的CPU +内存负担。
我会说:使用你最舒服的networking服务器。 OTOH它是真正的谷歌searchApache食谱是充满了废话,它需要仔细阅读(大,非常好)文档。 作为一个阿帕奇恐龙,我对此非常满意。 但是如果你是HTTP服务器的新手,我猜Nginx不那么吓人,更酷。 Apache和Nginx都非常可靠。
至于PHP,我使用Apache与工人MPM和FastCGI。 简单,高效。 我很久以前就在http://forge.bearstech.com/trac/wiki/DebianLamp上logging了这一点:在Debian 6.0上更容易,但我没有logging它。
你的设置对我来说似乎很好(Haproxy + Apache或Nginx,然后通过FastCGI PHP)。 将负载平衡器放在每台前端服务器上而不是一个独立节点上(这成为一个SPOF)是一个好主意。 而且更简单,因为每个节点都运行相同的设置。 添加一个IP故障转移,你就完成了。