【发布时间】:2012-07-14 18:35:07
【问题描述】:
我发现我的网站加载第一页的速度很慢,但在那之后就很好了,一些使用 apache 配置的试验表明可能是以下问题之一:
AllowOverride - 我知道将 AllowOverride 设置为 All 会降低站点速度,因为它会在每个文件夹中查找 .htaccess 文件,因此我将配置移到了虚拟主机文件中并设置了 AllowOverride None 因此关闭 .htaccess 文件,这最初似乎可以解决问题,但是当我再次尝试时,问题又回来了,所以也许不是那样。
我删除了 AllowOverride 行,因此它默认恢复为此的默认设置(无)。这似乎有所帮助,但有时仍会再次发生。
-
可能是重写规则是:
RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?example\.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !google. [NC] RewriteCond %{HTTP_REFERER} !search?q=cache [NC] RewriteCond %{HTTP_REFERER} !msn. [NC] RewriteCond %{HTTP_REFERER} !yahoo. [NC] RewriteRule ^.*$ - [F] RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
但是有些网站不使用这个,事实上甚至不使用重写并且仍然很慢所以这似乎也不是问题。
有什么想法吗?
已编辑:
问题不在于网站,因为即使是只有“Hello World”的简单 HTML 也有问题。
它在以前版本的 Apache 上运行良好,但自从升级到 2.4(当很多事情发生变化时,尤其是配置发生变化时)它变得很慢。
【问题讨论】:
-
"...加载第一页很慢,但之后就很好了..." 你找错地方了。开始使用 Firebug / Pagespeed 或等价物来整理您的内容缓存。
-
我想你误会了,延迟是在你到达网站之前,就像某种服务器问题一样。网站加载后速度很快,您可以毫无问题地四处走动。第一次加载一个只有“hello world”的网站甚至很慢,所以内容不是问题。
-
您是否托管在共享服务上?
-
如果它是您自己的服务器,则可以选择使用
strace来计时发生的事情。我有一个测试虚拟机,它广泛地反映了我的产品堆栈,我已经使用 strace 来很好地解决这样的问题。例如。 here 虽然我发现在调试器模式下启动 Apache 更容易做到这一点。 -
我降级到 apache 2.2 似乎已经解决,所以看来是 2.4 问题
标签: apache .htaccess mod-rewrite