非常缓慢的第一次握手Apache

任何人有什么想法,我应该开始解决这个问题,第一次握手有时达到20秒,但刷新之后,只需要0.9s。

设置,

100/10 Mbps
Windows操作系统
4GB内存
英特尔酷睿2 3.0 GHz
和7200转硬盘

Apache 2.4
没有SSL
Mod_Security已启用
Mod_Deflate启用
Mod_Expires已启用
Mod_ReWrite已启用
PHP和MySQL在同一台机器上。

我已经看到更慢的机器预成型更好,因此我认为我的问题是一个优化问题。

看来你已经在apache里激活了DNSparsing。 这使您可以在您的apache日志中拥有主机名而不是IP。

如果不是这种情况,那么最好的testing方法就是分析networkingstream量。 这可以通过以下方式完成:

  • 像WireShark这样的networking嗅探器
  • 像Fiddler2一样的HTTP代理/分析器
  • 一个像FireBug的浏览器插件

您也可以运行以下命令开始调查:

curl --trace-time -vI www.example.org 

http://www.exmaple.org是您的网站。 请添加此输出到您的问题。

从Windows 6.1(Server 2008 R2和Windows 7)开始,Windows已经停止使用主机文件parsing本地主机,现在使用它自己的DNSparsing器,这很慢。

两种方法来解决这个问题:

a)您可以在Web应用程序(数据库连接),httpd.conf,httpd-vhosts.conf,php.ini以及任何您能想到的地方find并replace“localhost”的每个实例为“127.0.0.1”。

要么

b)在这里的文件hosts"C:\Windows\System32\Drivers\etc"

取消最后两行的注释。

 # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost 

这个特定的问题是由我在服务器上使用的mod_bw引起的,以限制stream量使用。 它限制了所有文件,甚至造成HTML文件延迟。 正确configuration后,一切正常工作。