如何优化PHP网站[译]
转载请注明出处
这是一篇翻译自stackOverflow的文章,由于水平有限难免出错,如果您在阅读的时候发现了,请帮我更正。
如何优化PHP网站
问题如下(原文:PHP website Optimization): 我拥有一个高访问量的网站,需要保证每个访问我站点的用户,都能够在最短的时间内显示出他们请求的页面。 我通过Google搜索大量关于网站访问速度和优化方法的文章,并得出如下几个方案:
1. 对页面缓存
通过对页面缓存,我可以让访问更加快速。但是如果我变更了页面的内容,我则必须把页面的内容从缓存中删除并重新对文件进行缓存。
2. 页面静态化(把页面保存在磁盘中)
通过页面静态化,我可以比较简单的对它进行维护。只是这样的话我必须每次访问它所在的目录来进行维护工作。
那么究竟如何才能够达到我想要的目的呢?
------------------------------------------------------------------------------------------
来自Book Of Zeus的回答:
对于网站的性能来说,当我们需要获取静态或动态的内容时,减少访问数据库或文件系统的请求数,启用缓存(缓存页面或部分内容)是很重要的一个环节。
在运行动态内容的时候,我们可以使用加速PHP处理的软件:
(一)在这我推荐使用Alternative PHP Cache(通过手册了解更多关于APC信息)。
推荐几篇关于APC的好文章给你:
(二)如果是缓存内容或整个页面的话,最好使用Memcached 或 Redis进行缓存。
1.
memcached
一个高性能的分布式内存对象缓存开源系统。用于降低数据库负载,提升动态web程序的访问速度。memcached是通过把从数据库中返回的结果集、调用API返回的结果集或者呈现的页面。在内存中以键值对的形式进行缓存。2.
Redis
一款高性能键值对存储数据库开源项目。当值为字符,哈希表,列表,集合或排序集合时,它被视作一种数据结构服务程序。
这两个(Memcached和Redis)项目都是用于缓存内容和变量的绝好工具。
推荐几篇有关Memcached和Redis的相关文章:
(三)使用varnish,nginx或G-Wan
1.
Varnish
一款专为有大量动态内容web网站设计的HTTP加速器。与其它HTTP加速器相比,如squid在客户端缓存;Apache则仅仅是服务器软件。Varnish则一开始就被设计成为HTTP加速器。2.
Nginx
是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器、反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄国大型的门户网站及搜索引擎Rambler(俄语:Рамблер)使用。此软件BSD-like协议下发行,可以在UNIX、GNU/Linux、BSD、Mac OS X、Solaris,以及Microsoft Windows等操作系统中运行3.
g-wan
C编写的Web服务器,比其它采用键值对存储的解决方案更加快速
一些文章:
(to be continued)