如何在CentOS和Fedora云服务器上使用Apache开始使用mod pagespeed
介绍
Apache 最近流行的模块之一是 mod_pagespeed。 它是 Apache 2.2+ 的输出过滤器,可以通过配置文件或 .htaccess 文件通过各种选项进行配置。 “输出过滤器”是一种在将数据发送到客户端之前对其进行转换的东西。 换句话说,它是您的网站与用户浏览器在访问您的 URL 时收到的内容之间的一层。
加速网络
mod_pagespeed 的目标是加速您的网站。 它通过对各种文件应用过滤器来做到这一点,以减少浏览器为获取所需内容而必须进行的旅行次数,减少这些文件的大小并优化这些文件的缓存长度。
安装
安装非常简单。 它会因您使用的操作系统而异。 Ubuntu 和 Debian 具有可以下载和安装的软件包(或任何使用 .DEB 软件包的 Linux 发行版)。 其他 Linux 发行版可以下载源代码并从中构建。
如果您使用的是 64 位版本(可能)...
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
如果您使用的是 32 位版本(不太可能)...
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.rpm
跟进:
yum install at
(If you do not already have 'at' installed)
rpm -U mod-pagespeed-*.rpm
删除下载的包
rm mod-pagespeed-*.deb
注意:从源代码安装超出了本文的范围。 您可以在此处找到来自 Google 的详细说明:Build Mod_Pagespeed from Source
该模块在安装时会自动启用。 但是,您必须重新启动 Apache 才能开始工作。
/etc/init.d/httpd restart
您现在应该在您的 VPS 上启动并运行 mod_pagespeed 的工作版本。 您可以通过查看页面的响应标头来检查这一点。 您安装的版本号应该有一个“X-Mod-Pagespeed”值。
设置
安装包处理很多开箱即用的配置。 事实上,有一些保守的默认设置会在 Apache 上自动启用。 根据您运行的 Apache 版本,您将获得安装和启用的模块的不同版本。 如果您运行的是 Apache 2.2,将安装 mod_pagespeed.so
; Apache 2.4 用户将使用 mod_pagespeed_ap24.so
。
注意:mod_pagespeed 仅适用于 Apache 2.2 及更高版本。 Apache 2.4.1 还存在一个错误,阻止它使用该版本。 应使用 Apache 2.4.2 或更高版本。
此外,配置文件已添加到您的 Apache 安装中。 主配置文件是 pagespeed.conf
。 该文件位于:
/etc/httpd/conf.d/
配置
如果你愿意,你现在可以停下来。 mod_pagespeed 的默认值很好,但是您经常会发现通过对您的网站进行一些额外的调整可以获得更好的性能。 每个站点都会通过不同的设置获得不同的结果,最好尝试一下并找到最适合您和您的站点的设置。
出于本教程的目的,我们将介绍一些更常见的设置。
如何配置 mod_pagespeed
有几种不同的方式可以配置 mod_pagespeed。 您可以使用上述 pagespeed.conf 文件为整个云服务器配置它。 或者,如果您愿意,可以将配置设置放在 Apache 虚拟主机/网站的 VirtualHost 指令中。 最后,您可以选择在 .htaccess 文件中指定指令,例如大多数网站对 mod_rewrite 所做的。
这些选项中性能最低的是 .htaccess 文件,因为它必须随每个请求一起加载。 pagespeed.conf 文件在 Apache 启动时加载,因此它是存储配置设置的理想位置。 出于同样的原因,在 VirtualHost 指令中也比在站点的 htaccess 文件中更可取。 这也是放置特定站点设置的好地方。
您可以使用任何想要编辑配置文件的文本编辑器。 在本教程中,我们将使用 nano。
要开始编辑主配置文件,请使用以下命令:
nano /etc/httpd/conf.d/pagespeed.conf
基本设置
一般来说,pagespeed.conf 中的设置在文件中都有很好的记录。 http://www.modpagespeed.com 还提供了大量过滤器示例。 以下是您可能想要使用的一些常见设置,以优化您的网站性能。
打开/关闭 mod_pagespeed
首先,您可以使用 ModPagespeed 设置打开或关闭模块。
ModPagespeed on
或者
ModPagespeed off
重写关卡
您可以指定不同的设置“级别”以简化任何配置。 默认值为 “CoreFilters.”
它包含一组 Google 团队认为可以安全使用的过滤器。 过滤器是应用于文件的单个操作。 通常,您不需要更改此值。 使用此默认设置更容易,然后使用 ModPagespeedEnableFilters
和 ModPagespeedDisableFilters
指令启用或禁用过滤器。
默认设置:
ModPagespeedRewriteLevel CoreFilters
要禁用 CoreFilters,请使用此设置:
ModPagespeedRewriteLevel PassThrough
注意:您必须使用“PassThrough
”设置显式启用要打开的任何过滤器。
使用默认的“CoreFilters”重写级别默认包括许多过滤器。 截至撰写本文时,它包括:?
add_head combine_css convert_jpeg_to_progressive convert_meta_tags extend_cache flatten_css_imports inline_css inline_import_to_link inline_javascript rewrite_css rewrite_images rewrite_javascript rewrite_style_attributes_with_url
将来会添加新的过滤器。 通过使用 CoreFilters,当您更新 mod_pagespeed 时,如果它们成为默认设置的一部分,您将自动启用这些过滤器。 使用 PassThrough 将要求您明确启用新过滤器。
启用过滤器
如果您想启用其他过滤器,可以将它们作为逗号分隔的列表传递给 ModPagespeedEnableFilters
。 您可以在整个配置文件中有多个 ModPagespeedEnableFilters 指令。 因此,如果您想为每个站点启用过滤器,您可以在虚拟主机配置文件或 .htaccess 文件中启用它,而不是在主 pagespeed.conf 文件中启用它。
这是一个启用 Pedantic 过滤器(将 type 属性添加到脚本和样式标签)和 Remove Comment 过滤器(删除所有 HTML 注释)的示例:
ModPagespeedEnableFilters pedantic,remove_comments
禁用过滤器
如果您愿意,您还可以根据具体情况禁用过滤器。 指定要禁用的过滤器列表,类似于
ModPagespeedEnableFilters
The following example disables the “Convert JPEG to Progressive” filter even though it’s part of the CoreFilters set:
ModPagespeedDisableFilters convert_jpeg_to_progressive
指定重写哪些 URL
默认情况下,mod_pagespeed 会重写它所能做的一切。 您可以使用以下指令禁用某些文件(例如 Javascript 库)被重写:
ModPagespeedDisallow "*/jquery-ui-*.min.js"
这将禁止重写与指定的通配符模式匹配的任何文件(本例中为 jquery UI)。
您也可以默认关闭所有文件的重写,只启用您想要手动重写的文件。 您可以使用以下设置执行此操作:
ModPagespeedDisallow "*" ModPagespeedAllow "http://*digitalocean.com/*/styles/*.css" ModPagespeedAllow "http://*digitalocean.com/*.html" ModPagespeedDisallow "*/notrewritten.html"
执行顺序意味着 digitalocean.com 上以 .html 结尾的所有文件都将被重写。 最后一个 Disallow 指令意味着任何匹配该模式的 URL 都不会被重写,因为它会覆盖以前的设置。
重启阿帕奇
不要忘记如果您使用 pagespeed.conf 或 VirtualHost 文件来更改设置,您必须重新启动 Apache 才能使设置生效。 您可以使用以下命令执行此操作:
/etc/init.d/httpd restart
结论
本指南将帮助您开始使用 mod_pagespeed。 还有许多其他设置和指令可以应用于服务器范围或每个站点。 此外,mod_pagespeed 正在积极开发中,所以它每天都在变化。 有关更多详细信息,请访问 Google 运行的 http://www.modpagespeed.com。
此外,您可以在 https://developers.google.com/speed/pagespeed/mod 上查看官方 mod_pagespeed 站点。