IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    通过使用 HTTP/2 提高你的网站的访问速度

    BelinChung发表于 2016-10-14 05:03:38
    love 0

    随着 Web 的发展,HTTP/1.x 已经很难满足现在的需求,Google 因此开发了 SPDY 作为尝试,HTTP/2 在此基础上应运而生。HTTP/2 在2015年5月被批准,目前已经在很多 Web 浏览器和服务器中得到实现。

    HTTP/2 和 TLS 组合可以提升你的站点性能,并且让用户觉得你的网站很安全。

    服务器软件版本支持

    请确保你服务器的软件版本号支持开启 HTTP/2,否则坑很大,坑死人。

    • Nginx ≥ v1.9.5
    • openSSL ≥ v1.0.2

    编译安装/升级 openSSL

    目前我的机器是 Ubuntu,其他 Linux 发行版应该也大同小异

    1
    2
    3
    4
    5
    $ wget https://www.openssl.org/source/openssl-1.0.2j.tar.gz && tar -xzvf openssl-1.0.2j.tar.gz && cd openssl-1.0.2j
    $ sudo ./config
    $ sudo make install
    $ sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
    $ openssl version -v

    可以看到 openSSL 的版本已经升级至 1.0.2j

    编译安装/升级 Nginx

    如果你的机器现在安装的 Nginx < 1.9.5 或者 built with OpenSSL 版本 < 1.0.2,那么需要重新编译一个高版本的 Nginx

    具体升级过程可根据自己的实际情况,唯一要注意的是编译参数可以加上刚刚的 openSSL 目录,以防万一

    1
    2
    $ ./configure \
    $ --with-openssl=path/to/openssl-1.0.2j

    升级好后,通过 nginx -V 查看版本

    1
    2
    3
    4
    5
    nginx version: nginx/1.10.1 <-- 注意这里
    built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
    built with OpenSSL 1.0.2j 26 Sep 2016 <-- 注意这里
    TLS SNI support enabled
    configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/root/openssl-1.0.2j --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module

    通过配置 Nginx 文件开启 HTTP/2

    目前 Firefox 和 Chrome 明确地表示,他们只实现基于 TLS 的 HTTP/2,所以请先确保你的网站已经支持了 HTTPS

    相关博文:《使用 SSL 证书保护网站的访问》

    然后开启的步骤非常的简单,只需在配置文件中加上 http2 关键字即可

    1
    2
    3
    4
    5
    6
    7
    8
    9
    server {
    listen 443 ssl http2;
    server_name dearb.me;
    #SSL配置
    ssl on;
    ssl_certificate /etc/nginx/conf.d/certificate.crt;
    ssl_certificate_key /etc/nginx/conf.d/certificate.key;
    }

    通过 Chrome Network 标签验证结果

    573DD65E-3A94-49C3-872C-4EEF3C240189



沪ICP备19023445号-2号
友情链接