除了使用诸如jotcache之类的缓存插件外,我还能做什么来改善网站的服务器响应时间?
我已经删除了所有不活动的文章模块,插件和组件,还有什么我可以做些改进的吗?
我说的是客户(浏览器)对他的请求作出响应之前的时间。而不是页面加载的时间。
除了使用诸如jotcache之类的缓存插件外,我还能做什么来改善网站的服务器响应时间?
我已经删除了所有不活动的文章模块,插件和组件,还有什么我可以做些改进的吗?
我说的是客户(浏览器)对他的请求作出响应之前的时间。而不是页面加载的时间。
Answers:
您可以采取几个步骤来提高服务器端的性能。请注意,其中一些将不适用于大多数共享主机。为了获得出色的性能,通常需要更精细的控制。
与任何优化一样,您应该评估它对网站性能的影响。对于基本优化,诸如PageSpeed和YSlow之类的工具很有帮助(我建议使用Firefox版本)。为了更深入地了解,您必须测量一段时间内实时系统的实际响应时间。
启用操作码缓存
这可能是您可以提高网站性能的唯一最大的事情。我建议使用OpCache或APC。可以根据服务器和站点的特定需求来调整这些缓存的配置,以提高性能,但是仅安装就已经有了很大的提升。
更新PHP版本
较新的PHP版本通常会提高性能。此外,在许多情况下,当在较新的PHP版本上运行Joomla时,它们可以使用更好的代码。从今天起,如果您关心性能,则不应使用PHP 5.4之前的PHP版本。
PHP设置
在较旧的PHP版本(<= 5.3)上,请务必关闭电源register_globals
并magic_quotes_gpc
免费获得性能。在PHP> = 5.6上更改always_populate_raw_post_data
为-1。
PHP扩展
Joomla包含一些代码来解决丢失的PHP扩展的问题。这将永远比那些扩展慢。一个体面的性能改进安装以下扩展名:mbstring
,zip
,ftp
启用gzip
启用服务器端压缩会以带宽换取CPU资源。对于大多数网站,这是正确的选择。注意仅压缩文本数据,压缩二进制数据将给您带来CPU冲击,而没有带宽优势。您也可以在Joomla设置中启用压缩,但是最好让服务器处理。
预压缩静态资源
我不是在谈论最小化(尽管这也有帮助),但是您可以将Nginx和Apache配置为服务器已压缩的资源,从而有效消除gzip压缩对CPU的影响。优点:对于较小的文件,请使用Zopfli。
对PHP使用FastCGI
更具体地说,您应该使用php-fpm
。这样可以防止在浏览器请求非PHP文件时启动PHP。
使用适当的缓存头
使用Expires
标头可以大大减少所需的服务器资源。毕竟,最快的请求是从未完成的。
通常,我建议将Nginx用于高性能站点。如果由于某些原因您确实需要使用Apache,那么我会得到一个额外的提示:
禁用AllowOverride
设置AllowOverride
为None
防止大量磁盘IO和
不要使用FTP模式
虽然它不会影响您的用户阅读站点,但会减慢某些操作,如扩展程序安装。
关闭未使用的扩展
对于插件来说尤其如此,其中许多都是在每个请求上运行的。列出可用的扩展名和菜单类型时,禁用菜单和组件主要有帮助。还要花5分钟时间浏览Joomla核心随附的扩展,并禁用不使用的扩展。
关闭准备内容
如果您使用许多自定义模块(mod_custom
而不是自写模块),请检查是否可以禁用其中的“准备内容”。这样可以节省一些处理。
使用缓存
如果您对性能很认真,则需要启用缓存。对于具有许多匿名用户的阅读繁重站点特别有用。登录的用户将绕过大部分缓存,如果您有很多缓存,则影响不会那么大。
使用备用会话处理程序
通过使用备用会话处理程序,您可以释放数据库以用于更重要的事情。我不建议使用文件(在Joomla设置中令人困惑地称为“无”),因为这将再次增加磁盘IO。使用APC可能是最快的选择,但会增加丢失所有会话数据的风险。正确的中间地带是Memcache。尽管这需要额外的过程,但它比APC更可靠,并且比将所有数据存储在数据库中快得多
让您的网站保持简单
您真的需要那个Facebook按钮吗?那只因部分隐藏在横幅后面而没人见过的可爱图标呢?您的网站显示的越少,它就会越快。也尽可能使用CSS3代替图像。
设置图标
感谢可以追溯到Internet Explorer 4.0的决定,favicon.ico
每当用户访问您的网站时,浏览器都会向一个名为的文件发出请求。如果您没有,则会导致不必要的IO,因为不会缓存404响应。可以使用HTML meta标签指定您网站的图标,也可以添加一个称为favicon.ico
Web根的文件。不需要收藏夹图标?在该位置放置一个尺寸为1x1像素的透明PNG。请注意,扩展名仍需为.ico
。
优化图像
通过优化图像(尤其是PNG文件)可以节省多少钱,这真是令人惊讶。有多种工具可用于任何操作系统,就我个人而言,我使用可用于OS X的ImageOptim。Joomla的核心映像已进行了优化,但要经过您自己的映像,尤其是模板很重要。您也可以检查正在使用的扩展名。如果它们是开源的,为什么不提交包含新优化图像的请求请求?
如果您真的想全力以赴,请考虑将Varnish放在您网站的前面。它将请求缓存到您的站点,并在可能的情况下从其自己的缓存中为它们提供服务,永远不要访问Joomla。这是一个复杂的工具,但功能强大。Joomla不会利用Edge Side Includes(ESI)等高级功能,但您自己的代码可以。
您可以提高网站响应时间的一件大事是更新模块设置。自定义模块(使用mod_custom)具有启用/禁用内容准备的选项。这使您可以在自定义模块内的数据内容上运行内容插件。如果使用正确,它功能强大,但确实会增加模块输出的渲染时间。除非您实际上在自定义模块内容中使用了内容插件,否则最好将其关闭。当您这样做时,您会看到模块渲染时间的减少。
设置的屏幕截图:
注意:如果我的答案对您有帮助,请单击左侧的复选框以接受答案。
我假设您已经通过Google Page的速度运行了您的网站,并且您的确希望减少页面的响应时间,即标记发送到浏览器所花费的时间。
这些问题最可能的罪魁祸首是繁重的查询。打开调试,然后查看页面底部,找出哪些是最繁琐的查询,然后删除或减少这些查询。您也可以利用MySQL服务器的慢查询日志。
您可以查看的下一件事是缓存。根据您拥有的站点类型,您可以启用保守或渐进式缓存。渐进式将用于不具有和用户相关功能的网站。
我所知道的可以帮助的事情(其中大多数已经列出)是:
我结合使用了内置的Joomla缓存(甚至在服务器上启用了APC)和gzip或火箭主题的rockbooster插件之类的插件。我也将nonumbers CDN插件用于亚马逊帐户。
它绝对有帮助,但是您必须监视您的站点并为有问题的组件禁用缓存。我不得不绕过我们网站上的CiviCRM,因为它在缓存方面表现不佳。Joomla带有一个可以处理该问题的cachecontrol插件。
您还需要考虑减少本地资产和适当的缓存。您可以做的一件事是使用CDN插件。这是我建议的两个:
'corePHP'jomCDN- https: //www.corephp.com/joomla-products/jomcdn
Joomla的NoNumbers CDN!- http://www.nonumber.nl/extensions/cdnforjoomla
另外,如果上述方法都不能解决问题,那么您可能遇到了更深层次的问题-可能在模板,服务器本身或其他方面。如果是这种情况,最好雇用某人来寻找问题并为您解决。
您还可以在.htaccess文件中使用以下代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.your domain [nocase]
RewriteRule ^(.*) http://your domain/$1 [last,redirect=301]
RewriteEngine on
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript text/javascript
</ifmodule>
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>
我已经使用Joomla创建了数百个网站!
在大多数情况下,人们认为Joomla在服务器上工作量很大,但是根据我所做的分析,保持网站FAST的最重要的事情是优化图像和JS / CSS。
不要使用Joomla编辑器(如JCE)来更改图像的大小。使用photoshop等图像编辑器或其他任何编辑器将图像调整为所需大小!
我们始终使用Pingdom Tools来分析网站速度,并使用T3 Framework的内置功能来优化JS / CSS!
您是否删除了未使用的插件?Joomla必须为请求中触发的事件加载和处理每个已发布的插件。
您必须了解已安装的扩展以及它们如何与Joomla交互!
许多扩展程序安装了插件,这些插件管理内容,系统或用户活动以初始化代码功能。其中一些可能是多余的。
我知道k2安装了许多插件来响应与语言相关的事件,这些事件不会为单个语言站点产生任何实际输出。取消发布这些插件可以减少处理时间。
也许不是OP所寻找的答案,但是值得一提的是万一它不是对每个人都显而易见的(并且还没有其他答案提到这一点):改善服务器资源,例如内存,CPU和磁盘速度。
如果您使用共享的虚拟主机,则从“经济”计划升级到“业务”计划或其他更高级的计划可能会改善网站可用的服务器资源并减少服务器响应时间。转向质量更高的托管公司(例如,使用较少的共享网络托管服务器)也可能会有所帮助。
更好的托管计划可能还会使您能够访问基本托管计划中未包括的性能增强功能。例如,“ GrowBig”和“ GoGeek” SiteGround托管计划包括动态缓存,这有助于显着减少服务器响应时间。动态高速缓存选项在“启动”计划中不可用。