2012-04-14 67 views
2

我在运行Litespeed web服务器的共享主机上使用Magento 1.6.2.0,并且我已经开始研究如何加快页面加载速度。目前我正在使用Pingdom来查看请求,并且当我在没有www的情况下键入我的URL时,似乎我从一开始就失去了整整一秒。浏览器重定向到www页面,只是需要很长时间。这是我能解决的问题吗?我认为我可以改变Magento的base-url来不包含www,但是我认为我会在去www网址时使用相同的延迟。应该重定向到www导致一秒钟的延迟?

+0

不,它不应该。但是,如果没有更多的信息,我们可以说什么可能会导致延迟或如何解决它。给链接展示问题的URL将是一个好的开始。 – 2012-04-14 19:53:46

+0

谢谢 - 我安装了Fooman Speedster,它破坏了我的一些不加载背景图片的CSS,而“cookies.css”现在需要4.5秒加载:/但你仍然可以看到最初的延迟,请尝试:http:// www.mmmspeciosa.com/magento/ – 2012-04-14 20:38:12

+0

仅供参考我已将magento安装现在移至根public_html文件夹,因为它引起了fooman问题,所以您现在可以在mmmspeciosa.com/上访问它 – 2012-04-14 21:03:14

回答

4

我看了一下你给出的链接,在收到302重定向到www.的URL之前,我确实看到了大约1秒的延迟。并非完全巧合,实际页面HTML也需要相当长的时间(大约1.7秒)才能加载。

这是大型网络应用程序的一个相当常见的问题:即使返回一个简单的响应,如重定向,整个应用程序也必须加载并运行其启动代码。将它与一个没有为那个应用程序优化的速度不太快的共享网络服务器结合起来,你可以得到非常慢的页面加载时间。这对Magento来说并不是什么特有的东西。我自己也看到了与MediaWiki相同的效果,并且我预计它也会发生在其他应用程序中。

明显的解决方案是避免重定向:只要你确保你所有的URL都有正确的主机名,由于错误的主机名造成的额外延迟将不会出现。 Magento本身大概会为自己的URL处理此问题,但如果您有任何其他代码(或静态页面)链接到您的Magento URL,请确保它们使用正确的主机名。

您也可以注册Google Webmaster Tools(以及类似工具,为其他搜索引擎),并配置您的首选域有(这是下站点配置→设置),因此谷歌将自动预先准备www.任何链接到你的网站它索引。

您可以(也应该)也尝试一般减少Magento的启动时间。这不仅会加速重定向,还会加速所有其他页面加载。我对Magento不够熟悉,无法就此提供更详细的建议,但对于任何大规模PHP应用程序来说,明显的第一步是确保您使用的是诸如APC之类的PHP accelerator

最后,将访问者重定向到正确的主机名的最快方式是让您的网络服务器直接发送重定向,而不用调用Magento。如何做到这一点的细节取决于您使用的服务器软件,但apparently LiteSpeed supports与Apache的mod_rewrite相同的RewriteRule语法,因此您应该可以通过将以下行添加到主文件.htaccess文件中来执行此操作:

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\.mmmspeciosa\.com$ [NC] 
RewriteRule ^(.*)$ http://www.mmmspeciosa.com/$1 [R=301,L] 

(顺便说一句,我使用HTTP 301 permanent redirects这里,而不是HTTP 302 temporary redirects的Magento似乎使用。根据HTTP standard这不仅是比较合适的,但也与搜索引擎,其治疗301工作得更好重定向作为指示来索引目标URL而不是重定向源。如果这种重定向类型在Magento中不可配置,那么我们ld认为它是一个错误。如果它是可配置的,则应将其设置为301.)