Apache - 初始握手速度极慢(启用 SSL)

Apache - 初始握手速度极慢(启用 SSL)

我的 Apache 服务器出了点问题。初始 SSL 握手大约需要 5-7 秒,这太糟糕了。此后响应时间以毫秒为单位 - 但必须在第一个消息之后立即发送消息,否则几秒钟不活动后将再次进行握手。有没有办法通过 Apache 配置来加快速度?

答案1

这是一些 Linux 发行版,对吗?

这台服务器大部分时间都处于闲置状态吗?也许 Apache 正在从/dev/随机。这有时会非常慢,因为/dev/随机需要“真正的”随机性;诸如移动鼠标、使用键盘和网络流量之类的事情会聚集熵。如果内核熵池几乎为空,则需要随机性的进程往往会停滞一段时间(很长)。

如果是这种情况,cat /proc/sys/kernel/random/entropy_avail则在 SSL 握手期间应该接近零。

您可以将随机源切换为/dev/urandom通过使用SSLRandomSeedApache 指令,但请注意,理论上这不如 /dev/random 那么安全。

其他解决方案是使用类似守护进程rngd(可从rng-tools许多 Linux 发行版的包中获取)来填充熵池。

答案2

除了 Janne Pikkarainen 所说的之外,还要检查服务器是否没有对 SSL 请求进行 DNS 反向查找。运行tcpdump -pi eth0 port 53

相关内容