您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页迈向HTTPS(三)快速让你的网站支持HTTP2

迈向HTTPS(三)快速让你的网站支持HTTP2

来源:二三四教育网

当你的网站支持 HTTPS 后,这并不是终点,这时候你可以考虑升级 HTTP/1.1 到 HTTP/2 了,至于什么是 HTTP/2 这里就不说了,它是 HTTP/1.1 的升级协议,对客户端和服务器端有极大的性能提升,知道这一点就足够了。

据 2016/05 统计,世界上大概 8% 的站点部署了 HTTP/2。

另外使用 HTTP/2 必须先构建 HTTPS,所以明白了把,Google 大力推进 HTTP/2(包括它的前身 SPDY)也是有原因的,变相等于支持 HTTPS,从而让网络更安全更快速。

这里以 Nginx 服务器来简单说明如何让你的网站支持 HTTP/2 。

ALPN 是什么

一个网站假如同时支持 HTTP/1.1 和 HTTP/2,那么客户端(浏览器)如何知道一个网站(服务器)是不是支持 HTTP/2 呢?这时候 ALPN 协议就发明了,中文名就是应用层协议协商协议,假如浏览器通过这协议知道服务器支持 HTTP/2,那么浏览器就会使用该协议,有个协商的过程。

麻烦在哪儿

OpenSSL 1.0.2 以上的版本才支持 ALPN,但是现在的主流 Linux 发行版内置的 OpenSSL 版本并没有这么高,比如我的 VPS 是 Ubuntu 14.04 LTS,它默认的 OpenSSL 版本是 1.0.1f。那么怎么办呢?

第一种方法是升级操作系统,这个对我来说比较麻烦,所以就放弃了。另外个方法就是重新编译 Nginx 和 OpenSSL,选择最新版本。

源码编译安装 Nginx 支持 HTTP/2

wget 
tar -zxvf openssl-1.0.2j.tar.gz
cd  openssl-1.0.2j 
curl http://nginx.org/download/nginx-1.13.0.tar.gz 
tar xvf nginx-1.13.0.tar.gz 
cd nginx-1.13.0 
./configure --prefix = /usr/nginx --with-openssl=../openssl-1.0.2j --with-http_v2_module --with-http_ssl_module
make 
make install 

修改 nginx.conf

server {
    listen       443 ssl http2;
    server_name  
}

看看 Nginx 编译后的结果

/usr/nginx/nginx -V
nginx version: nginx/1.13.0
built by gcc 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.1) 
built with OpenSSL 1.0.2j  26 Sep 2016
TLS SNI support enabled
configure arguments: --prefix=/usr/nginx --with-openssl=openssl-1.0.2j --with-http_v2_module --with-http_ssl_module --without-http_rewrite_module

非常简单把,现在就可以测试下你的网站是否支持 HTTP/2

测试网站是否支持 HTTP/2

curl --http2 -I 
curl: (1) Unsupported protocol

最后,在你看我网站的时候并不支持 HTTP/2,因为还有好多事情没有做,这也只是入门文章,很多细节没有说。

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务