25 March 2013

Apache 是非常强大的 Web 服务器,模块化结构,也是 Web 服务端的鼻祖,已经成为了世上最广泛部署的开源系统,直到最近,世界上大多数网站仍运行着Apache系统。

但是,

Apache 并不是完美的,并且不再适合大规模系统。它的进程模式虽然简单而灵活,但并不适合大规模尤其是当要处理像 PHP 这种需要占用大量内存应用程序代码时。

目前有两个主要的解决方法。

第一个方案,也是现有系统上最容易的方法,就是在 Apache 前端安装负载均衡服务器或者 Nginx 来处理客户端连接部分。负载均衡服务器,像 HAProxy 或者 Nginx 能轻松处理成千上万条并发的连接,并使 Apache 能够真正的仅作为后端应用程序工作,来处理32个或是更多的进程。

第二种方案,也是最通用的办法就是用 Nginx 替换 Apache,同时使用 PHP-FPM 作为应用服务器,分割前端客户端通信部分和后端应用程序部分。Nginx 处理 HTTP 通讯协议,同时 FPM 处理后端应用程序部分,和那 32 个进程进行交互。

通常来说,所有新的系统都应该使用 Nginx 和 PHP-FPM 来部署。这能提供高性能增长特性,并且是平衡用户和内存,CPU 资源的最佳选择。已存在的系统可以在前端使用 Nginx 或者 HAProxy 以达到同样的效果,以便在当今现代网络环境中为用户提供更优质的服务。

对大型应用,我会保持对 Nginx 的关注,而中小型或者个人应用,Apache 已经足够了。

摘录自 http://www.ctocio.com/


HAProxy

HAProxy 提供高可用性、负载均衡以及基于 TCP 和 HTTP 应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy 特别适用于那些负载特大的 Web 站点,这些站点通常又需要会话保持或七层处理。HAProxy 运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的 Web 服务器不被暴露到网络上。

PHP-FPM

PHP-FPM 是一个 PHP FastCGI 管理器。

PHP5.3.3已经集成 PHP-FPM 了,不再是第三方的包了。

PHP-FPM 提供了更好的 PHP 进程管理方式,可以有效控制内存​和进程​、可以平滑重载PHP配置,比 spawn-fcgi 具有更多优点,所以被 PHP 官方收录了。在./configure的时候带 –enable-fpm 参数即可开启 PHP-FPM。



blog comments powered by Disqus