Apache 第一次握手非常慢

Apache 第一次握手非常慢

有人知道我应该从哪里开始解决这个问题吗?第一次握手有时需要长达 20 秒,但之后刷新只需要 0.9 秒。

设置,

100/10 Mbps
Windows 操作系统
4GB RAM
Intel Core 2 @ 3.0 GHz
和 7200 RPM HDD

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

我见过速度慢得多的机器表现却更好,因此我认为我的问题只是一个优化问题。

答案1

看来您已在 apache 中激活了 DNS 解析。这允许您在 apache 日志中拥有主机名而不是 IP。

如果不是这样,那么最好的测试方法是分析网络流量。可以使用以下方法完成:

  • 像 WireShark 这样的网络嗅探器
  • HTTP 代理/分析器,例如 Fiddler2
  • FireBug 之类的浏览器插件

您还可以通过运行以下命令开始调查:

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

其中 www.exmaple.org 是您的网站。请将此输出添加到您的问题中。

答案2

从 Windows 6.1(Server 2008 R2 和 Windows 7)开始,Windows 已停止使用 hosts 文件来解析本地主机,而是使用自己的速度较慢的 DNS 解析器。

有两种方法可以解决此问题:

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

或者

hostsb) 在此处的文件中:"C:\Windows\System32\Drivers\etc"

取消注释最后两行。

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

答案3

这个特定问题是由我在服务器上使用的 mod_bw 引起的,用于限制流量使用。它限制了所有文件,甚至导致 HTML 文件出现一些延迟。正确配置后,一切都正常。

相关内容