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

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

admin15年前 (2011-05-12)网站制作820
【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. Google博客搜索提交: http://blogsearch.google.com/ping?hl=zh-CNGoogle网站提交: http://www.google.com/intl/zh-CN/add_url.html2. 百度博客搜索提交:http://utility.baidu.com/blogsearch/submit.phpbaidu网站提交: http://www.baid...

Z-Blog模板SEO优化向导

一、简单地了解Zblog的结构。工欲利其事,必先利其器。我们首先要先熟悉一下Zblog的文件不至于改起来晕头转向。(1). 关于模板文件的说明, Zblog的模板文件都放在Template目录下面,但其中比较重要值得优化的有几个default.html     首页的模板single.html     &nb...

Web2.0write:用web2.0 Logo尽情书写

Web2.0write:用web2.0 Logo尽情书写  试了一下26个英文字母,大家可以先看一下!并且有些字母还不只一种图案呕!网址:http://web2.0write.com/...

让blogger变得更漂亮!用Disqus实现Blogger页内评论

用Disqus实现Blogger页内评论 新版的Blogger支持了页内评论,支持OPenID和Google Account,详细方法可以查看Disqus页内留言方法只需要简单的三步:一注册之后,首先添加你的网站名称和链接;第二步,选择blogger平台;第三部上传你的Blogger模板(这里需要注意一点,有一个选项:Use Disqus on future blog entries o...

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

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

My Social Buttons —精美的免费Web 2.0聚集地

My Social Buttons提供了12个Web 2.0 Icons,分别为Twitter, Facebook, StumbleUpon, Delicious, Digg, Flickr, Technorati, Reddit, RSS Feed, LinkedIn, MySpace, FriendFeed,这些图案都是该部落格站长从网路中四处找寻收集而来,你可以免费使用这些图案来装饰一下网站...

评论列表

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

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

adwords
15年前 (2011-05-14)

有点深奥,看不懂。

发表评论

访客

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