这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
“怎么样能让我的 Drupal 网站更快一些?”是我们最常遇到的一个问题。站点速度确实非常重要,因为它会影响你的 SEO排名效果、访客是否停留以及你自己管理网站所需要的时间。
今天我们就来看看那些通过 Drupal 自带界面便能够实现的提速操作。
启用缓存
通过访问“管理>配置>开发>性能”( admin/config/development/performance)页面可进行 Drupal 内置的性能优化设置页面。
这个页面看到的所有选项都可以勾选。这些缓存设置只对匿名用户(未登录用户)有影响,所以如果你的站点并不频繁更新,可以将缓存时间设置得长一些。缓存区块可以避免在每个页面加载区块时都要对其进行重建。区块在很多Drupal站点中被大量使用,因此对其它进行缓存会很有帮助。启用区块缓存也有一个缺点,即如果你修改了其中的内容,直到达到最小缓存周期(Minimum cache lifetime)前,匿名用户将不会看到区块中内容的变化。当然你可以点击“清空所有缓存”按钮,让修改能够立即被看到。
带宽优化(Bandwidth Optimization)部分的设置对匿名用户和登录用户同样都有影响,通过减小文件的大小、将多个文件进行合并以减少浏览器的请求数量等方式,这些设置可以让你的网站加载更加快速。
压缩缓存页面 (Compress cached pages)并不是必选项。有时因为服务器已经对页面进行压缩操作,此时如果再选中压缩的话反而会使网站的速度变慢,因为这会尝试对已压缩的内容再次进行压缩。如果你不知道网站是否已经进行压缩,可以使用 GZIP 测试工具进行确认——首先取消选中“压缩缓存页面”,然后使用GZIP测试工具进行测试,如果结果显示网页已压缩,则不勾选。反之,则选中“压缩缓存页面”(这时再进行GZIP测试需要显示网页已缓存)。
禁用不必要的模块
知道 Drupal 在每个页面加载时都会做些什么吗?它会检查每一个模块,确认它们是否要向当前页面中添加一些内容。如果网站上有50+个模块,可能会让你有些痛苦。通常,启用一个模块能够获得一些简单和便利的功能,但这其实是一项交易,你是希望拥有更快的站点还是更方便的体验?
你可以通过禁用以下这些内置模块来提升网站速度:
- Blog
- Forum
- Taxonomy
- Search
- Help
- Shortcut
- Dashboard
- Database Logging
- Field UI
- Color
- Toolbar
- Tracker
- Statistics
同样的,如果网站中有以下模块,也可以禁用掉:
- Update Manager
- Administration Development tools
- Devel
- Devel node access
- Rule UI
- Views UI
- Module Filter
(译注:开发和管理常用的 Drupal 模块在线上站点都可以删除和移除,用于辅助管理的UI类模块,可根据使用需要进行禁用)
启用Views缓存
如果你的站点上有Views模块,在没有禁用 Views UI模块的情况下,你可以通过Views管理界面启用 Views 缓存。
Views是将数据从数据库中拿出来以各种方式展示的好办法。有时因为Views中包含大量信息,需要经历的工作和时间会比较长。因此当包含Views的页面进行加载时,每次都要再重复相同的查询工作。通过启用Views缓存,Views可以为其所要显示的内容只进行一次查询,便可在指定的时间周期内(或其它条件规则下)直接显示,而不需要每次都经历复杂的查询。这对页面加载速度将会有巨大的提升。
因为查询结果(Query results)与渲染输出结果(Rendered output)通常是相关的,所以你完全可以将它们设置成一样的值 。以上图设置为例,如果用户更新了Views中相关的内容,因为缓存的原因,用户需要等待1小时之后才会看到新的输出结果。
启用 Panels 缓存
很多 Drupal 网站使用 Panels 模块进行搭建。Panels 在为 Drupal 提供灵活布局方面的贡献是相当伟大的,但它却可以拖慢整个页面的加载速度。然而,每个 Panels 面板都有它自己的缓存设置,可以根据需要自行确定是否对页面各部分数据进行缓存。
即简单地只为 Panels 面板设置基于时间的缓存,也可以基于特定条件为其设置复杂的缓存机制,但那需要一定的时间去深入了解,一般用户往往没那个需要。
另外,有一个名为“Panels, Why so slow”的模块,可以显示每个Panels面板的加载时间,并以红色标示出很慢的那些。这为尝试不同的Panels设置以及纠正设置非常有用,可以通过调试让页面达到更短的加载时间。
对图片进行优化
现在到处都流行大型幻灯片和全屏图片,而这些大图片可以严重地拖慢网站的打开速度。压缩图片可以有利于提高网站速度,但也请注意不要过度压缩图片而导致质量下降。
使用 PNG 优化工具
如果网站使用大量使用Photoshop 制作的PNG图片,便可通过PNG优化器获得巨大的好处。
使用JPEG优化工具
JPG图片稍微要麻烦一点,因为在进行图片压缩之前,需要先对压缩率进行设置以便在图片文件尺寸和质量上取得平衡。
Drupal图片压缩
如果网站的图片通过ImageCache(Drupal 6)或者Image Styles (Drupal 7)进行处理,则可以通过设置项调整输出图片的压缩率。进入“配置>媒体>图像工具包(admin/config/media/image-toolkit)”页面便可进行简单设置。较低的设置值会产生低分辨率的小图片,高的值则对应分辨率高的大图片。这个设置对所有图片进行“一刀切”,所以无法通过它对每个图片进行单独的设置。
Drupal提速小结
文本仅仅只是“优化Drupal网站速度”这一话题的皮毛,今后我们还有很多内容可以交流。在提升Drupal速度这个话题上,我们还可以花很多时间进行研究,以下是导致Drupal网站缓慢的几类原因:
- 服务器或网站存放空间的速度
- 文件、图像及媒体文件的物理尺寸
- 文件、图像及媒体文件的数量
- 启用的模块数量
- 站点上运行的其它程序脚本
原文标题:这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
原文地址:http://drupalct.org/drupal-performance/speed-up-drupal-with-cache-and-else.html
这些优化 Drupal 网站速度的超简单办法,你忽略了多少?的更多相关文章
- Linux PHP多版本切换 超简单办法
今天在帮别人安装一个不知所谓的东西时碰到,三版本的PHP环境,我感觉那个人也是666哒,他使用的是AMH快速开发工具 有图有真相!!! 然后就顺便写下怎么快速,简便切换php版本 首先:find命令找 ...
- Web 性能优化:21 种优化 CSS 和加快网站速度的方法
这是 Web 性能优化的第 4 篇,上一篇在下面看点击查看: Web 性能优化:使用 Webpack 分离数据的正确方法 Web 性能优化:图片优化让网站大小减少 62% Web 性能优化:缓存 Re ...
- input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has
input屏蔽历史记录 设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处 ;(function($){$.ex ...
- 优化Laravel网站打开速度
Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度. 1.关闭debug 打开.env文 ...
- (转)网站速度优化技巧:Nginx设置js、css过期时间
网站速度优化技巧:Nginx设置js.css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for ...
- 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。
在您阅读本文前,先需要告诉你的是:即使是本文优化过的算法,DCT去噪的计算量依旧很大,请不要向这个算法提出实时运行的苛刻要求. 言归正传,在IPOL网站中有一篇基于DCT的图像去噪文章,具体的链接地址 ...
- 超简单的NDK单步调试方法
令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...
- Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡
文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...
- 让那些为Webkit优化的网站也能适配IE10
特别声明:此篇文章由David根据Charles Morris的英文文章原名<Adapting your WebKit-optimized site for Internet Explorer ...
随机推荐
- WIN8外包公司【经验分享】——升级WIN8.1后VS2012报错解决方法
今天升级WIN8.1的时候发现VS2012不能正常工作,原来的Silverlight项目也无法正常打开了,这是WIN8.1升级产生的bug. 得知微软提供了VISUAL STUDIO 2012 UPD ...
- Python编写一个Python脚本
我想要一个可以为我的所有重要文件创建备份的程序.(下面测试环境为python2.7) 1.backup_ver1.py #!/usr/bin/python import os import time ...
- golang的的模板引擎之pongo2
https://github.com/flosch/pongo2 beego的扩展包 https://github.com/yansuan/beego-pongo2 gin的扩展包 https://g ...
- SVN并行开发管理策略
总的原则:trunk保证相对稳定.分支合并到主干时将冲突降至最低. (1) trunk用于集成.测试.发布,可以提交fixbug代码,但不允许直接提交新特性. (2) 特性在分 ...
- 黄聪:解决丢失api-ms-win-crt-runtime-|1-1-0.dll的问题:vc_redist.x64
解决无法启动程序,因计算机中丢失api-ms-win-crt-runtime-|1-1-0.dll的问题 安装:Microsoft Visual C++ 2015 RC Redistributable ...
- iphone Dev 开发实例8: Parsing an RSS Feed Using NSXMLParser
From : http://useyourloaf.com/blog/2010/10/16/parsing-an-rss-feed-using-nsxmlparser.html Structure o ...
- mysql小问题
报错信息如下: 主要是因为用root用户登录查询其他用户的表,结果这个用户不存在了,所以导致没有权限.临时解决办法,给root赋所有权限: grant all privileges on *.* to ...
- Report_客制化以PLSQL输出XLS标记实现Excel报表(案例)
2015-02-12 Created By BaoXinjian
- GC之三--GC 触发Full GC执行的情况及应对策略
1.System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数. ...
- Undefined symbols for architecture i386:"_OBJC_CLASS_$_xx", referenced from: 解决方法
多个人共同操作同一个项目或拷贝项目时,经常会出现类似这样的问题: Undefined symbols for architecture i386: "_OBJC_CLASS_$_xx文件名& ...