简单性能指南
网站性能和优化非常重要,尤其是当20%及以上的访客来自移动端时。移动访客通常使用的连接速度比网站快速加载所需的慢。一旦新网站完成、部署并正常运行,随着访客流量的增加,它可能会变慢。在这种情况下,你可以做些什么?如何提高网站性能并优化 Apache?请继续阅读以获取答案...
本简单指南是从Joomla 的希伯来语优化指南翻译而来,旨在提高和优化标准 Joomla 网站的性能。本指南的难度适合初学者以及略高于初学者的水平。
重型工具
有一些工具可以使我们的工作变得更加简单和系统化。我已使用这些工具优化了许多网站(包括以色列社区网站)。您可以通过这些工具查看您网站的结果并获得即时警报。
Google 页面速度
Google 分析网站性能的工具非常用户友好。Firefox 和 Chrome 中有扩展程序可以使用此工具。
Yahoo YSlow
Yahoo 的同类型工具,更适合高级用户。它也作为 Firefox 和 Chrome 的扩展程序提供。它的结果更令人印象深刻,报告中的每个结果都包含更多细节和解释。
简单规则
上述工具分析您的网站并检查一系列简单规则。以下是一些基本规则以及如何进行改进和优化。对于更高级的规则,您可以在工具中找到更多描述。当然,在做出任何更改之前进行备份非常重要,尤其是在对生产网站进行操作时。
Gzip
gzip是一种压缩服务器发送给客户端页面的方法。这种压缩会使服务器端工作更辛苦,但压缩效果显著,使页面变得非常小。通过在服务器选项卡中输入全局配置来启用此选项。在此选项卡中,启用gzip页面压缩选项。如果未启用该选项,则您的Apache服务器应支持它。请咨询您的托管服务提供商。
缓存
缓存是另一种简单的方法,但确实非常有效,可以提高性能。将未过期的缓存数据存储在定义良好的时间范围内。缓存可以在服务器端或客户端运行,并且您可以控制这两端。
服务器端
如果我们正在服务器端使用缓存,那么创建发送给客户端的网页需要时间,这意味着浏览器知道如何显示的HTML。
Joomla通常执行许多适用于当前请求时间并且在之后几小时内也是正确的操作。在这种情况下,我们可以让Joomla将数据存储在缓存中,而不是当客户端再次请求页面时再次处理整个页面的创建。
要启用服务器端缓存,您可以在Joomla中轻松完成。进入扩展->插件。搜索system - cache,并确保此插件已启用。然后进入全局配置->系统选项卡,并将缓存标记为开启和保守。对于大多数网站来说,保守设置就足够了。只有当您确实有很差的表现时才应使用积极的缓存。缓存时间取决于您网站内容更新的频率。例如,如果您的网站内容每天更新不到一次,您可以将此值设置为几小时,否则请将其保留为默认值。您可用的缓存处理器将取决于您的托管服务。
以下是我在缓存处理器使用中的优先级: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>
如果您不知道您的宿主上安装了哪个扩展,请咨询您的托管服务提供商。
压缩
除了我们之前进行的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贡献了memcached处理程序的开发者,该处理程序从Joomla 3开始可用。
在Joomla社区杂志上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不符合Joomla项目的官方立场。
通过接受,您将访问由https://magazine.joomla.net.cn/之外第三方提供的服务
评论