加速 Apache 和 PHP

加速 Apache 和 PHP

有哪些好的缓存模块或系统可以用来减少运行 PHP 的 EC2 服务器上 Apache 的负载,为什么选择它们?

答案1

以下是一些流行的、行业标准的提高速度的技术。您可以根据您的具体配置尝试这些技术:

Memcached

Memcached 是一种通用的分布式内存缓存系统,通常用于通过在 RAM 中缓存数据和对象来加速动态数据库驱动的网站,以减少必须读取外部数据源(如数据库或 API)的次数。

http://memcached.org/

Varnish 缓存

Varnish 是一款专为内容繁重的动态网站设计的 HTTP 加速器。与其他 HTTP 加速器(例如最初作为客户端缓存的 Squid 或主要作为原始服务器的 Apache)不同,Varnish 从一开始就是作为 HTTP 加速器设计的。

http://www.varnish-cache.org/

Mod_pagespeed

Page Speed 是一个工具和库,它可以识别可以对网站进行的改进,以改善其延迟。mod_pagespeed 会自动在 Apache 服务器中应用这些规则。HTML、CSS、JavaScript 和图像在 Web 服务过程中会动态更改,因此可以使用 Page Speed 推荐的最佳实践,而无需更改网站的维护方式。

http://googlewebmastercentral.blogspot.com/2010/11/make-your-websites-run-faster.html

HBase

HBase 是一个开源、非关系型分布式数据库,仿照 Google 的 BigTable 构建,使用 Java 编写。它是作为 Apache 软件基金会的 Hadoop 项目的一部分开发的,运行在 HDFS(Hadoop 分布式文件系统)之上,为 Hadoop 提供类似 BigTable 的功能。也就是说,它提供了一种容错的方式来存储大量稀疏数据。

http://hbase.apache.org/

欺骗慢启动

慢启动是 TCP 使用的拥塞控制策略的一部分,TCP 是许多互联网应用程序使用的数据传输协议。慢启动与其他算法一起使用,以避免发送超过网络传输能力的数据,即避免造成网络拥塞。

http://blog.benstrong.com/2010/11/google-and-microsoft-cheat-on-slow.html

答案2

cwd 的答案非常好,如果处理大量 PHP 的话,只需添加一个 PHP 操作码缓存器(APC、eaccelerator、xcache)。

答案3

感谢 cwd 的mod_pagespeed建议 +1。

如果你的目标是减轻负担在 Apache 上,并且假设 Apache 是接收 HTTP 请求的前线守护进程(即用户和 Apache 之间没有缓存),您应该非常关注客户端优化,特别是减少页面重量和减少加载页面所需的请求数量。mod_pagespeed将会动态地做很多这些事情,但是因为它是一个 Apache 模块,所以只是为了进行这些优化,会产生一点 Apache 负载。

它将使用过期标头等最大化客户端缓存,而无需您详细调整 Apache 配置,这是一个胜利。 自己做一些其他优化(合并或捆绑 CSS 和 Javascript 文件以减少构建页面所需的每个文件的数量,CSS 图像精灵以减少每页加载的图像数量)可能会更好,以减少负载mod_pagespeed

您可以查看 Google 的 Page Speed 工具(链接自这一mod_pagespeed)和/或Yslow 扩展为了萤火虫Firefox 插件可为您的页面找到良好的客户端优化。

相关内容