当前位置:首页 > 网站制作 > 正文内容

WordPress网站的单服务器与多服务器优化策略

admin15年前 (2011-05-12)网站制作832
【WordPress(或者说任何一个web-based app)可以参考的优化策略】 单服务器优化策略: DB优化;缓存优化和页面加载速度优化(压缩等); 多服务器优化策略: DB读写分离;Web server负载均衡;Offloading(将static files, feed等保存到独立的服务器上); 附:WordPress官网介绍的针对不同服务器硬件的优化策略:(shared hosting, virtual/dedicated server, multiple servers) http://codex.wordpress.org/WordPress_Optimization http://codex.wordpress.org/WordPress_Optimization/Cheat_Sheet 如下主要介绍对WordPress站点的优化: 【A: 缓存优化】 为什么需要caching? 对于一个站点,如果不caching,每个用户的请求都需要执行相同的server side process:编译和解释执行php脚本,复杂的算法逻辑,数据库或其他IO读写,将转换的HTML返回给浏览器展示。 caching之后,可以保存如上各个步骤的中间结果避免重复计算或获取,例如: 1、采用db/io caching则db/io的结果可以直接获取,介绍db/io操作; 2、缓存算法部分的计算结果到内存中,可节省执行算法需要的时间; 3、对编译php代码得到的 opcode进行缓存,可节省每次编译需要的时间; 4、将生成页面的HTML静态保存,可以节省每次生成页面的整个时间; 5、通过HTTP header设置浏览器本地缓存,可避免每次请求获取静态文件,快速获取静态的图片,js,css等文件。 因此缓存可分为:db/io缓存、动态脚本编译缓存、生成页面缓存、浏览器缓存等;具体的实现:可以将中间结果保存在内存(memcached)中或磁盘中; 1. db caching 例如MySQL query cache,配置/etc/mysql/my.cnf:
    query_cache_limit       = 1M     query_cache_size        = 16M
2. 动态脚本编译缓存 例如PHP compiler cache。PHP源代码需要通过编译器编译为opcode再解释执行;如果没有修改源代码,不需要每次都从源码开始编译,可缓存opcode。 常见的PHP compiler cache工具有:APC, eAccelerator 3. WP自带的缓存性能 在wp 2.3的时候首次引入cache,最初是file-based,可以通过wp-config.php中的define ( 'ENABLE_CACHE', true);设置是否开启cache功能。 从wp 2.6开始开始采用object-oriented solution,wp代码内部实现cache,不需要进行config。wp并提供了一系列的wp_cache函数允许开发者使用wp的对象cache功能。该object-oriented的cache是将数据cache在内存中而且仅在当前session有效。一些第三方插件提供了cache的持久化特性。 参考: + http://wpengineer.com/1607/use-wordpress-cache/ + http://codex.wordpress.org/Function_Reference/WP_Cache 4. HTML页面缓存 WordPress有自己的caching system,因此编写plugins或者修改WP代码,推荐使用它提供的函数,而避免直接编写SQL。 另外,使用一些WP caching plugins可以有效地缓存WP页面,大大提高网站页面加载速度。这些plugins中一般有2种类型的缓存策略:一种是缓存生成的页面;另一种是缓存db query的结果。 推荐:Hyper Cache或者Hyper Cache + DB Cache Reloaded或者W3 Total Cache Hyper Cache http://wordpress.org/extend/plugins/hyper-cache/ 安装需要: - 下载,解压,拷贝到wp-content/plugins下; - 创建cache目录并设置可写:
cd hyper-cache mkdir cache chmod 777 cache
- 修改wp-content为可写:
chomod 777 wp-content
需要在该目录下生成`advanced-cache.php`文件 - 修改`wp-config.php`文件 在`define("WPLANG"`之后添加`define("WP_CACHE", true);` 具体参考:Hyper Cache: http://www.satollo.net/plugins/hyper-cache W3 Total Cache http://wordpress.org/extend/plugins/w3-total-cache/ DB Cache Reloaded: DB Cache的升级版; http://wordpress.org/extend/plugins/db-cache-reloaded/ DB Cache: 对db query缓存,而不同于其他的缓存页面 http://wordpress.org/extend/plugins/db-cache/ 其他不推荐: WP Super Cache: WP-Cache的升级版,注意有时候开启compression可能影响性能; WP-Cache: 缺点:缺乏更新,卸载的时候会遗留一些文件 WP Widget Cache: 如果使用了一些db intensive的widget,该插件可以对widget缓存,比较有用; 如上WordPress caching plugins的比较结果参看:http://www.tutorial9.net/tutorials/web-tutorials/wordpress-caching-whats-the-best-caching-plugin/ 5. 浏览器缓存Browser Caching 例如,可以设置nginx对静态文件进行压缩和缓存: 修改/etc/nginx/nginx.conf,添加gzip设定部分
gzip  on; # 压缩css, js, xml文件 gzip_types text/css text/xml application/x-javascript; gzip_disable "MSIE [1-6]\.(?!.*SV1)";
修改/etc/nginx/sites-available下对应的网站配置文件,添加静态缓存: # 缓存blog下所有js, css和图片文件
# 缓存blog下所有js, css和图片文件 location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {     expires max;     log_not_found off; }
参考:http://wiki.nginx.org/HttpGzipModule#gzip_types 【B: 针对WP本身的优化策略】 1. Plugins 禁用不常用的plugins,注意有些plugins可能存在不必要的数据库读写进而影响性能。另外,WP本身具有caching功能,使用WP提供的函数比直接编写SQL语句效率可能要高; 2. Themes 和plugins类似,某些themes可能存在不太高效的数据库操作,推荐使用官方的themes。另外可以进行其他优化: 静态文件: theme是否使用太多的图片文件(可使用文字代替的图片可不使用),对所有图片进行无损减肥(使用Yahoo! Smush.it);CSS和JS文件优化; 可以hardcoded的static values不要从数据库中读取; 附:该使用何种图片格式GIF, JPG, PNG: ~ For photographic type images, JPG is best ~ For logos or images with blocks of flat colour and no gradients, GIF or PNG8 ~ For images using effects such as drop shadows or glows, which also require transparency, choose PNG24. 来自http://blogs.sitepoint.com/gif-png-jpg-which-one-to-use/ 参考:http://codex.wordpress.org/WordPress_Optimization/WordPress_Performance 【多服务器优化策略A: offloading分布存储】 1. 静态文件独立存储 将静态文件(css, js, images)等保存在独立的服务器上,可使用独立的域名;因为大部分的浏览器和server通信最多同时保持2个请求,因此如果将文件分布存储在4个server上,那么同一时刻最多可以实现8个请求来并行获取显示页面需要的内容。 配置HTTP Server的静态文件传输前GZip压缩,并设置客户端浏览器缓存时间; 2. 将feeds存在外部服务器上 可以将feeds存放在外部服务器上,例如Google FeedBurner(),FeedBurner每隔一段时间获取站点最新的feed并存储在其服务器上,订阅的用户直接从FeedBurner获取网站的feeds,从而大大节省流量。 3. 将本站的comments保存到IntenseDebate/Disqus上 IntenseDebate或Disqus将用户在各个网站的comments聚合到一起,方便用户追踪和好友分享。将自己站点的comments保存到Disqus/IntenseDebate的服务器上一方面方便在social graph中的推广;另一方面一定程度上不用自己保存comments降低负载和存储。 IntenseDebate是WordPress开发团队Automattic的产品,因此推荐使用。 使用WP的Disqus comment system插件可以很好地将Disqus嵌入到WP中(该插件支持Disqus和WP本身的comments同步):Disqus comment system。 4. 其他的分布存储: 可将网站的图片等静态文件存储在外部服务器上,例如flickr提供免费的图片存储。Amazon S3(Simple Storage Service)和Amazon Cloudfront: 可以用于存放静态文件,需要收费;类似的MaxCDN,提供CDN(Content Delivery Network)服务;Steadyoffload(http://www.steadyoffload.com/)。 参考:http://codex.wordpress.org/WordPress_Optimization/Offloading 【多服务器优化策略B: 分布式结构】 如果负载更大,可以考虑使用多个server:数据库和app分离;数据库本身读写拆分等;app server本身需要负载均衡。 WordPress的HyperDB可以实现数据库拆分http://codex.wordpress.org/HyperDB。 更多的文章: http://codex.wordpress.org/WordPress_Optimization http://codex.wordpress.org/WordPress_Optimization/Server_Optimization http://codex.wordpress.org/WordPress_Optimization/Caching

扫描二维码推送至手机访问。

版权声明:本文由博赚恋吧资源站发布,如需转载请注明出处。

本文链接:https://432l.com/post/4739.html

标签: WordPress
分享给朋友:

相关文章

让网站排名上升的10个方法

网站,要带来利润,如果失去了利益,那这个网站也就失去了作用,最简单的方法,就是使自己的网站,在搜索里排名靠前,但在亿万网页中,一个网站在搜索引擎里的排名排到第三页以后去了的话,基本就没什么效果可言了,那如何才能靠前呢,本人虽然做网站时间不长,也谈点自己的心得,供大家参考。   1.首先要定位好自己的网站,清楚自己的网站提供什么,提供给什么样的人群的。这里讲的是关键词的选择,是排名之第一要素。选错关...

2009年海外Web设计风潮—反 Box 布局

反 Box 布局Smashing Magazine 曾有一篇文章,讲到反 Box 布局。所谓反 Box 布局,就是不再拘泥与传统的 Box 布局模型,而是采用一种更有创意的的布局,然而需要指出,这种创意布局需要非常注意易用性问题,一种新的创意布局需要时间去慢慢成熟。 ...

2009 Web 设计风潮—多栏布局

多栏布局(大于3栏)通常比较复杂,但通过适当设计,会对访问者带来更好的访问体验。最近几年,Web 内容爆炸,用户停留在一个网站的时间越来越少,就要求 Web 设计者尽可能有效地展示数据,既要让访问者多停留,又要让他们更容易发现他们希望看到的内容。多栏设计一般用于杂志布局或展示型布局站点,一般使用网格布局技术实现。多栏布局一般使用概述/细节式结构,首先用多栏展示概述式内容,然后进入详细内容的展示。M...

如何利用友情链接做网站SEO优化

首先给大家介绍做友情链接对网站的好处,如何做友情链接。 1、 不要以为做友情链接能给网站带来很大的流量。2、 做友情链接对于搜索引擎来说就是网站与网站之间相互投票的过程。那么和搜索量正常的网站建立友情链接是其中一个很重要的因素。3、 既然是做给搜索引擎看的那么最好就是做文字链接,其他方式效果都不是很好,而且链接文字上可以做一些功夫。 做友情链接需要...

恋吧推荐一款整合主流社区/论坛系统的Web即时聊天工具Ntalker

Ntalker 是一款为站长朋友量身定制的Web IM软件,它能够轻松的整合至各自论坛、社区等系统中。Ntalker 是一款独立的Web IM 软件,它为独立的站长朋友提供了全方位的Web即时沟通的解决方案,包括,一对一聊天工具、类 Facebook Chat Panel 工具栏以及Web视频聊天室等产品。使用它,用户能够很轻松地将Ntalker 整合到包括,Discuz!、PHPWind、UCe...

世界顶级杀毒软件AntiVir(小红伞)免费半年Key申请

在病毒横行的今天,一款正版的杀毒软件是必不可少的,因为只有这样才能及时查杀网上最新的病毒和木马、黑客程序。但是国外的杀毒软件价格不菲,国产软件的效果又令人担忧。一款来自德国的杀毒软件AntiVir(中文名称:小红伞)以其强大的杀毒引擎和免费对个人开放受到了广大网民的青睐。采用了启发式杀毒为个人用户电脑提供全方位防护,支持检测、杀除超过80,000种流行病毒、宏病毒、引导区病毒等等。 该套装包括了A...

评论列表

倡萌
15年前 (2011-05-12)

最近使用了hyper-cache,很不错的插件哦

adwords
15年前 (2011-05-14)

有点深奥,看不懂。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。