阅读时间 6 分钟 (1270 字)

简单性能指南

Simple Performance Guide

网站性能和优化很重要,尤其是当 20% 及以上的访客来自移动设备时。移动访客通常使用的连接速度比您的网站快速加载所需的速度慢。一旦新网站完成、部署并一切正常工作,随着访问量的增加,它可能会变慢。在这种情况下您能做什么?您如何提高网站性能和优化 Apache?请继续阅读以获取答案...

本简单指南翻译自Joomla 的希伯来语优化指南,旨在提高和优化标准 Joomla 网站性能。本指南的难度适合初学者以及略高于初学者的水平。

重型工具

有一些工具可以使我们的工作变得更为简单和系统化。我使用这些工具优化了许多网站(包括以色列社区网站)。您可以通过这些工具查看您网站的结果并获得即时警报。

Google 页面速度

Google 工具用于分析网站性能,是最用户友好的工具。Firefox 和 Chrome 中都有相应的扩展程序来使用此工具。

Yahoo YSlow

Yahoo 工具用于同一目的,更适合高级用户。它也作为 Firefox 和 Chrome 的扩展程序提供。其结果更令人印象深刻,报告中包含更多细节和解释。

简单规则

上述工具分析了您的网站并检查了多项简单规则。以下是基本规则以及如何进行改进和优化。对于更高级的规则,您可以在工具中找到更多描述。当然,在做出任何更改之前进行备份非常重要,尤其是在对生产网站进行操作时。

Gzip

gzip是一种压缩服务器发送给客户端页面的方法。这种压缩使得服务器端工作更加繁忙,但压缩效果显著,使得页面变得更小。通过在服务器选项卡中输入全局配置来启用此选项。在此选项卡中,启用gzip页面压缩选项。如果选项未启用,则您的Apache服务器应支持它。请咨询您的托管服务提供商。

缓存

缓存是另一种简单但非常有效的提高性能的方法。在定义的时间范围内存储未过期的缓存数据。缓存可以在服务器端或客户端运行,您可以控制这两端。

服务器端

如果我们使用服务器端的缓存,服务器创建发送给客户端的网页(即浏览器知道如何显示的HTML)需要时间。

Joomla通常会对当前请求时间以及随后的几个小时进行大量操作,在这种情况下,我们可以让Joomla将数据存储在缓存中,而不是当客户端下次请求页面时再次处理整个页面创建过程。

要启用服务器端的缓存,您可以在Joomla中轻松完成。转到扩展->插件。搜索系统 - 缓存,确保此插件已启用。然后转到全局配置->系统选项卡,将缓存标记为开启和保守。对于大多数网站来说,保守模式就足够了。只有当您的性能真的很差时,您才应该使用激进缓存。缓存时间取决于您网站内容的更新频率。例如,如果您的网站内容每天更新不到一次,可以将此值设置为几个小时,否则保留默认值。您可用的缓存处理器将取决于您的托管服务。

以下是我对缓存处理器使用的优先级:memcached*,memcache,APC,文件(第一个是最高的,第二个是最低的)。由于这超出了本指南的范围,我将不解释每个,如果您好奇,可以在Google上搜索更多信息。

客户端

在客户端优化中,我们主要关注图像、CSS和JavaScript文件,每次访问网页时都会下载这些文件。由于这些文件中的大多数只偶尔更改,我们可以指示客户端缓存这些文件。要启用客户端缓存,我们将更新htaccess文件(位于Joomla根目录中)。这将声明客户端应该如何在缓存中存储文件,而不是在每次访问时下载它们。

让我们将神奇的内容添加到htaccess文件中

# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
Header set Cache-Control "max-age=29030400, public"
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
Header set Cache-Control "max-age=10800"
</FilesMatch>
# NEVER CACHE
<FilesMatch "\.(html|htm|php|cgi|pl)$">
Header set Cache-Control "max-age=0, private, no-store, no-cache, must-revalidate"
</FilesMatch>

每个指令都会告诉客户端在不同的时间框架内存储不同类型的文件。

上述声明使用了名为mod_header的Apache扩展。或者,您可以使用另一个名为mod_expires的扩展,它包含其他指令

ExpiresActive On
ExpiresDefault A0
# 1 YEAR
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
</FilesMatch>
# 1 WEEK
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
ExpiresDefault A604800
</FilesMatch>
# 3 HOUR
<FilesMatch "\.(txt|xml|js|css)$">
ExpiresDefault A10800"
</FilesMatch>

如果您不知道您的托管商安装了哪些扩展,请咨询您的托管服务提供商。

关于Apache客户端缓存指令的更多信息可以在此处找到

压缩

除了我们之前做的gzip压缩外,我们还可以添加对文本文件(如javascript和css)的更多压缩。这个动作将压缩发送到浏览器的文本文件。只需将以下指令添加到相同的htaccess文件中

# compressing of files
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

请注意,gzip压缩HTML,而这个会压缩HTML的包含文件(如js、css等)。此外,此方法使用Apache的mod_deflate扩展。请确保您已安装此扩展。

最小化 & 合并

我们将使用的最后一种方法是CSS和JavaScript文件的大小缩减。您可能会问,什么是Minify & Merge缩减?

CSS 和 JS 文件通常逐行展示,这让程序员的生活更轻松,也让构建网站更高效,还允许添加注释进行调试。然而,浏览器这种“笨拙”的东西,在合并所有行为一行并去掉注释(这对人类来说很有用)时,只能使用包含一行内容的相同文件。这种压缩可以减少文件大小,使下载速度更快。你可能计算过,可以节省多少 KB,但如果你的网站有 10000 个并发用户,可以节省数百兆的下载量(例如,查看Google的源代码)。

与压缩相比,合并减少将所有 JS 文件合并为一个 JS 文件,CSS 也是如此。这听起来像是一种愚蠢的行为,因为下载大小相同,但每个文件请求服务器都会使用资源,下载 10 个文件并不等同于一个文件,因为服务器必须在每个请求中投入资源。合并操作可以节省资源并优化客户端从服务器接收数据的过程。

对于这两个操作,JED(Joomla 扩展目录)中都有一个类别。请记住,这个操作是为高级用户准备的,你应该特别在拥有并发高负载用户时使用它。

* 揭示:我是为 Joomla 贡献 memcached 处理器的开发者,这个处理器从Joomla 3开始可用。

在 Joomla 社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能并不代表 Joomla 项目的官方立场。

0
Joomla 论坛用户 Webdongle 达到 20,000 篇帖子
 

评论

已注册? 登录这里
还没有评论。成为第一个发表评论的人

通过接受,您将访问 https://magazine.joomla.net.cn/ 外部的第三方服务