我遇到了带有 SSL 256 位证书的慢速 Apache 服务器的问题
ab -n 500 https://example.com/
Time per request 29 ms
ab -n 500 http://example.com/
Time per request 10 ms
两个请求都发送 52 字节,并且测试是从同一数据中心中的服务器完成的
会议
SSLEngine on
SSLProtocol All -SSLv2
SSLHonorCipherOrder On
SSLCipherSuite ALL:!ADH:!EXP:!LOW:!RC2:!3DES:!SEED:!RC4:+HIGH:+MEDIUM
SSL 比普通 HTTP 请求慢 3 倍是否正常?
你是如何对你的服务器进行基准测试的?什么应用程序在您的 HTTPS 服务器后面运行?您的服务器使用什么 CPU?你怎么能看到,你的问题缺少很多重要的细节......
无论如何,SSL 肯定比“纯”HTTP 慢一些:公钥加密比对称密钥慢得多,这就是为什么 pubkey 仅用于交换私有、对称密钥和切换到对称的通道的原因密钥加密。
HTTPS 速度较慢,因为它有更多数据要交换(来自服务器的 X.509 证书),它有一个安全的数据连接要设置,...
ab
可以给“连接”时间,这就是你会看到你的时间差异的地方。TLS 设置比没有设置需要更多时间。ab
您需要了解浏览器的功能和功能之间的区别。(我不会回答是什么ab
,因为我对它不够熟悉)。例如:
ab
使用 TLS 会话重用?浏览器会并且会因为它而执行得更快(对于后续请求)。您可以使用 wireshark 验证这一点(也许https://ask.wireshark.org/questions/9007/ssl-session-reuse很有用)ab
使用已知速度较慢的密码(您可以在 ssl_request_log 中查看协商的密码)Cache-Control: public, max-age=3600, s-max-age=3600
.如果您专注于这些,那么您可以轻松地使仅 HTTPS 的站点运行良好且快速。这就是我为(有效地)仅 HTTPS 的视频流网站所做的,我不必担心 SSL 连接时间。
是的,HTTPS 在建立连接时比 HTTP 慢大约 3 倍是正常的。这是很好的阅读解释原因。
网站变慢的原因:
SSL 证书带有多个中间证书,这些证书会在握手期间增加数据量。
OCSP 和 CRL 性能也没有得到纠正,因为网站需要 1/3 秒来回复 OCSP 请求并建立连接。
快速 HTTPS 连接的建议:
CPU资源的使用可以通过压缩文本内容来减轻,或者升级当前进程来处理加密任务。
您需要确保通过 HTTPS 检索页面上的所有内容。
借助SPDY - Google 的一种开源网络协议,可最大限度地减少网页加载时间。
在证书颁发机构方面,CA 可以将 OCSP 和 CRL 响应时间从 300 毫秒减少到 100 毫秒(毫秒)。
CA 可以减少 SSL 证书中的中间链大小,因为它会消耗额外的字节和时间。