“怎么样能让我的 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. 项目中初试PHP单元测试

    只能叫初试,前面虽然做了一些PHPUnit与团队所用框架的整合,但在整个团队还没有人可以主动推动这个事情,而作为Leader最重要的一种能力应该是"让正确的事情发生",所以今天开始 ...

  2. Educational Codeforces Round 16---部分题解

    710A. King Moves 给你图中一点求出它周围有几个可达的点: 除边界之外都是8个,边界处理一下即可: #include<iostream> #include<cstdio ...

  3. [转]Getting (personal) tasks from the user profile.

    from http://blog.amtopm.be/2013/02/22/getting-personal-tasks-from-the-user-profile/ Getting (persona ...

  4. 学习C++ -&gt; 构造函数与析构函数

    学习C++ -> 构造函数与析构函数 一.构造函数的介绍    1. 构造函数的作用        构造函数主要用来在创建对象时完成对对象属性的一些初始化等操作, 当创建对象时, 对象会自动调用 ...

  5. sqlyog连接mysql8.0

    1.本人安装的是mysql8.0社区版,安装包名称:mysql-installer-community-8.0.12.0.msi,可自行到官网下载. 2.安装完成后用sqlyog连接数据库出现密码乱码 ...

  6. python+selenium自动测试之WebDriver的常用API(基础篇二)

    本篇介绍一下python+selenium复杂操作的处理,基于python3.6,selenium3.141,详细资料介绍查看官方API文档,点击这里 一.常见特殊情况处理如iframe/弹窗处理 有 ...

  7. 关于如何使用xposed来hook某支付软件

    由于近期有业务上的需要,所以特地花时间去研究了一下如何使用hook技术.但是当我把xposed环境和程序编写完成时,突然发现手机上的某个支付软件无法使用了.这个时候我意识到,应该是该软件的安全机制在起 ...

  8. $(&quot;&quot;).append无反应

    网页中F12看控制台提示“ReferenceError: $ is not defined” 解决: script src路径出了问题,改为 <script type="text/ja ...

  9. Openvswitch手册(9): Flow

    这一节我们将flow table flow table主要由ovs-ofctl命令操作 ovs-ofctl可以走和openflow controller一样的协议: ssl:ip[:port]: Th ...

  10. python3爬虫-通过selenium登陆拉钩,爬取职位信息

    from selenium import webdriver from selenium.common.exceptions import NoSuchElementException from se ...