若是Nginx要开启http2须要知足如下2个条件:javascript
##更新源 sudo apt-get update ##安装nginx sudo apt-get install nginx ##查看Nginx版本 nginx -v
若是上面的当前服务器上的nginx版本大于1.9.5。说明能够完美的支持http2。若是小于1.9.5请先升级,nginx官网 .这里提示一下Ubuntu 16.04.1版本默认安装的nginx版本是1.10.3能够完美支持http2。css
因为http2须要ssl证书的支持。咱们能够申请免费的ssl证书。能够参考我以前的文章免费ssl证书申请。html
##编辑配置文件 vi /etc/nginx/sites-enabled/default
新增如下配置java
server { listen 443 http2;#注意这个里的http2 server_name test.com;#替换本身的域名 root html; index index.html index.htm; ssl on; ssl_certificate /home/ubuntu/ssl/test.crt;#替换本身的证书 ssl_certificate_key /home/ubuntu/ssl/test.com.key;#替换本身的证书 ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } }
记得本身修然server_name和对应证书位置。而后保存nginx
##从新加载配置文件 sudo nginx -s reload
也能够增长如下配置, 让全部http请求自动跳转到httpsweb
server { listen 80; server_name test.com; rewrite ^(.*)$ https://$host$1 permanent; }
而后使用chrome先打开本身网站。而后输入chrome://net-internals/#http2
若是列表上面有显示你的网站说明http2已经开启。
chrome
##编辑配置文件 vi /etc/nginx/nginx.conf
这个时候你会看到如下配置
咱们主要把图中红框部分注释放开就能够了。下面是配置json
gzip on;#是否开启gzip gzip_disable "msie6";#(IE5.5和IE6 SP1使用msie6参数来禁止gzip压缩 )指定哪些不须要gzip压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库 gzip_vary on;#启用应答头"Vary: Accept-Encoding" gzip_proxied any; gzip_comp_level 6;# gzip压缩比/压缩级别,压缩级别 1-9,级别越高压缩率越大,固然压缩时间也就越长(传输快但比较消耗cpu)。 gzip_buffers 16 8k;# 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 例如 4 4k 表明以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 表明以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。 gzip_http_version 1.1;#识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码 gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;#匹配压缩类型
重启以后验证ubuntu
##后面地址能够换成具体的资源 curl -I -H "Accept-Encoding: gzip, deflate" "https://sheeplovewolf.com/" HTTP/1.1 200 OK Server: nginx/1.10.3 (Ubuntu) Date: Wed, 04 Jul 2018 05:01:47 GMT Content-Type: text/html Last-Modified: Tue, 31 Jan 2017 15:01:11 GMT Connection: keep-alive ETag: W/"5890a6b7-264" Content-Encoding: gzip
若是返回Content-Encoding: gzip说明gzip已经开始。到此服务已经开起了http2和gzip。这样可让你web应用访问速度提高一个档次。浏览器