本着更快、更快、更快精神搞出来的HTTP/2,不用还是人?下面就来说一下吧。
准备工作
首先你需要Nginx 1.9.5以上版本。如果是Ubuntu Server 16.04 LTS的话,自带的是1.10的版本所以没有问题。其他系统请自行解决。
其次你需要启用ngx_http_v2_module模块。如果是Ubuntu Server 16.04 LTS的话就需要安装nginx-core
、nginx-full
或nginx-extras
,反正nginx-light
是没有的。如果是自行编译需要在设置时加上--with-http_v2_module
选项。
再次需要配合OpenSSL 1.0.2以上版本使用,如果是Ubuntu Server 16.04 LTS的话,自带的是1.0.2g的版本所以没有问题。其他系统请自行解决。
最后,你需要在Nginx上启用HTTPS,这涉及到SSL证书的申请、配置,又是一篇文章的内容了,以后有机会再说,这里请自行解决吧。
配置
禁用旧版加密
如果不禁用的话,会造成虽然启用了但是没法正常访问的问题。
Ubuntu上,只要修改/etc/nginx/nginx.conf
文件,在http
一节里找到或新加入这样一行(如果是软件包自带的配置文件的话,可以加在ssl_prefer_server_ciphers
一行后面):
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
配置HTTP/2
之后我们只要修改站点的配置文件,在listen
监听的HTTPS端口443后面加上ssl http2
就行了。监听80端口的并不能启用HTTP/2,请放弃。
比如:
server {
listen 443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name example.com;
ssl on;
ssl_certificate /path/to/example.com.crt;
ssl_certificate_key /path/to/example.com.key;
root /var/www;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
重启Nginx
Ubuntu只要如下命令就行了:
sudo systemctl restart nginx
最后
如果使用Firefox,可以安装一个叫做HTTP/2 and SPDY indicator的扩展,安装之后会在地址栏右侧显示一个闪电样的小图标,如果网站是HTTP/2就会显示蓝色,如果是SPDY(HTTP/2的前身)就会显示绿色,如果没有则显示灰色。
也可以打开开发者工具里的网络,可以看到“版本”一项显示“HTTP/2.0”。
HTTP/2好处都有啥,可以参考维基百科HTTP/2条目(英文的更详细)。
打赏微信支付宝
好香艳
[…] 如果你是第一次设置HTTPS,记得在listen选项那里要监听443端口,并在后面加上ssl。如果要启用HTTP/2,请参考这篇文章。 […]