“怎么样能让我的 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 网站速度的超简单办法,你忽略了多少?的更多相关文章

  1. Linux PHP多版本切换 超简单办法

    今天在帮别人安装一个不知所谓的东西时碰到,三版本的PHP环境,我感觉那个人也是666哒,他使用的是AMH快速开发工具 有图有真相!!! 然后就顺便写下怎么快速,简便切换php版本 首先:find命令找 ...

  2. Web 性能优化:21 种优化 CSS 和加快网站速度的方法

    这是 Web 性能优化的第 4 篇,上一篇在下面看点击查看: Web 性能优化:使用 Webpack 分离数据的正确方法 Web 性能优化:图片优化让网站大小减少 62% Web 性能优化:缓存 Re ...

  3. input屏蔽历史记录 ;function($,undefined) 前面的分号是什么用处 JSON 和 JSONP 两兄弟 document.body.scrollTop与document.documentElement.scrollTop兼容 URL中的# 网站性能优化 前端必知的ajax 简单理解同步与异步 那些年,我们被耍过的bug——has

    input屏蔽历史记录   设置input的扩展属性autocomplete 为off即可 ;function($,undefined) 前面的分号是什么用处   ;(function($){$.ex ...

  4. 优化Laravel网站打开速度

    Laravel是一个功能强大的框架,组件很多,代码也很庞大,它的易用方便是牺牲了性能的,即便如此它仍然是一个优秀的框架,但在正式环境下要做好优化提升网站的打开速度. 1.关闭debug 打开.env文 ...

  5. (转)网站速度优化技巧:Nginx设置js、css过期时间

    网站速度优化技巧:Nginx设置js.css过期时间 原文:http://www.webkaka.com/blog/archives/Nginx-set-the-expiration-time-for ...

  6. 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。

    在您阅读本文前,先需要告诉你的是:即使是本文优化过的算法,DCT去噪的计算量依旧很大,请不要向这个算法提出实时运行的苛刻要求. 言归正传,在IPOL网站中有一篇基于DCT的图像去噪文章,具体的链接地址 ...

  7. 超简单的NDK单步调试方法

    令人兴奋的是,ADTr20已经支持JNI单步调试,再也不需要如上这么麻烦的步骤了 你现在需要做的只需以下2步: 1.使用ndk-build编译时,加上如下参数NDK_DEBUG=1,之后生成so文件之 ...

  8. Nginx网络架构实战学习笔记(三):nginx gzip压缩提升网站速度、expires缓存提升网站负载、反向代理实现nginx+apache动静分离、nginx实现负载均衡

    文章目录 nginx gzip压缩提升网站速度 expires缓存提升网站负载 反向代理实现nginx+apache动静分离 nginx实现负载均衡 nginx gzip压缩提升网站速度 网页内容的压 ...

  9. 让那些为Webkit优化的网站也能适配IE10

    特别声明:此篇文章由David根据Charles Morris的英文文章原名<Adapting your WebKit-optimized site for Internet Explorer ...

随机推荐

  1. (转)[SQL Server] 动态sql给变量赋值(或返回值给变量)

    本文转载自:http://blog.csdn.net/xiaoxu0123/article/details/5684680 [SQL Server] 动态sql给变量赋值(或返回值给变量) decla ...

  2. C++虚函数和纯虚函数的区别

    多态是C++的重要特性,通过基类指针来访问派生类的函数. 虚函数就是为了实现这功能而定义的函数,虚函数可以在定义时实现也可以不实现,定义了虚函数的类可以实例化. 纯虚函数更多的是表示接口的含义,纯虚函 ...

  3. iphone dev 入门实例5:Get the User Location & Address in iPhone App

    Create the Project and Design the Interface First, create a new Xcode project using the Single View ...

  4. DBA_Oracle冷备份案例脚本本法(案例)

    2014-08-10 Created By BaoXinjian

  5. OAF_架构MVC系列2 - Model的概述(概念)

    2014-06-22 Created By BaoXinjian

  6. Restful风格的简单实现办法

    如果实在着急上Restful的URL在项目里 , 可以使用turkey的urlrewrite. 先在web.xml中加入如下代码 <!-- URL ReWrite --> <filt ...

  7. Xcode7--坑无法运行iOS9以下的模拟器

    Unable to open liblaunch_sim.dylib. Try reinstalling Xcode or the simulator 解决办法 一.找到目标文件 /Applicati ...

  8. Spring切入点表达式常用写法

    自从使用AspectJ风格切面配置,使得Spring的切面配置大大简化,但是AspectJ是另外一个开源项目,其规则表达式的语法也稍稍有些怪异.   下面给出一些常见示例的写法:   比如,下面是一个 ...

  9. Rspec中describe和context不同

    转自  http://lmws.net/describe-vs-context-in-rspec 学习rspec,不太理解describe和context.google了一下,找到这篇文章,感觉说的有 ...

  10. ruby api 2.1新增改变

    -> 这个符号可以替换lambda%i 生成符号数组 %i(foor bar baz) #[:foo,:bar:baz]def 定义方法 eg: def foo(x: 1); puts; end ...