V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
finian
V2EX  ›  Node.js

http和https的连接速度差别有这么大么?

  •  
  •   finian · 2013-10-18 10:25:31 +08:00 · 5861 次点击
    这是一个创建于 4052 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用的ucloud云主机,写了个简单的输出hello world的http和https(godaddy证书)。用alibench测试,http的平均连接时间在50ms上下,https的在1500ms,这差别也太大了吧?请问如何加速https的连接速度?
    8 条回复    1970-01-01 08:00:00 +08:00
    Tr0y
        1
    Tr0y  
       2013-10-18 10:30:41 +08:00
    换个其它的bench试试,ssl链接不应该差别这么大.
    cloudzhou
        2
    cloudzhou  
       2013-10-18 10:36:15 +08:00   ❤️ 3
    https 的最大消耗是握手阶段,所以数据很可能就是你上面展示的。但握手之后,在现代机器硬件水平下,和 http 差不多,所以服务端要启用 keep-alive ,增加 ssl 的 cache,以 nginx 为例子:
    keepalive_timeout 90;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 15m;
    cloudzhou
        3
    cloudzhou  
       2013-10-18 10:37:25 +08:00
    alibench测试不能说明一切,因为这个测试很可能是每次链接都是一个新的session,也就是说,你测试的是握手需要的时间
    dndx
        4
    dndx  
       2013-10-18 12:21:10 +08:00
    在未使用 Keep-Alive 的情况下,SSL 握手阶段消耗时间很长,自然不占优势。
    luikore
        5
    luikore  
       2013-10-18 12:57:19 +08:00
    可能他们的 https 设置根本没优化. 例如用 aesni 就可以快一些

    ssl_engine aesni;

    ssl_ciphers AES128-SHA:AES256-SHA:HIGH:!aNULL:!eNULL:!LOW:!ADH:!MD5;
    ssl_prefer_server_ciphers on;
    feuvan
        6
    feuvan  
       2013-10-18 14:59:19 +08:00
    ssl_session_cache 蛮有效的。推荐
    ihacku
        7
    ihacku  
       2013-10-19 19:59:09 +08:00   ❤️ 1
    vagase
        8
    vagase  
       2013-11-02 17:58:55 +08:00
    可能是证书问题,看看证书密钥长度是不是太长,而且证书最好包含所有中间证书,这样会减少证书检查时间。

    详情见:
    https://www.imperialviolet.org/2010/06/25/overclocking-ssl.html
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1005 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 22:14 · PVG 06:14 · LAX 14:14 · JFK 17:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.