Nginx开启http2访问和gzip网页压缩功能

准备工作
如果Nginx要开启http2需要满足以下2个条件:
- nginx >=1.9.5
- openSSL >= 1.0.2
所以这里我们首先要检查Nginx的版本如果没有安装要先安装Nginx
##更新源
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。
修改配置文件开启http2
由于http2需要ssl证书的支持。我们可以申请免费的ssl证书。可以参考我之前的文章免费ssl证书申请。
##编辑配置文件
vi /etc/nginx/sites-enabled/default
新增以下配置
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和对应证书位置。然后保存
##重新加载配置文件
sudo nginx -s reload
也可以增加以下配置, 让所有http请求自动跳转到https
server {
listen 80;
server_name test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
然后使用chrome先打开自己网站。然后输入chrome://net-internals/#http2
如果列表上面有显示你的网站说明http2已经开启。

开启gzip压缩功能
##编辑配置文件
vi /etc/nginx/nginx.conf
这个时候你会看到以下配置

我们主要把图中红框部分注释放开就可以了。下面是配置
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;#匹配压缩类型
重启之后验证
##后面地址可以换成具体的资源
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应用访问速度提升一个档次。
Nginx开启http2访问和gzip网页压缩功能的更多相关文章
- CentOS下Apache开启Gzip网页压缩功能
1.进入/etc/httpd/conf下打开httpd.conf文件 开启Gzip压缩功能,即去掉LoadModule deflate_module modules/mod_deflate.so这行前 ...
- Windows2003 IIS开启Gzip网页压缩
1.单击"开始"-"管理工具"-"Internet 信息服务(IIS)管理器",打开IIS管理器:2.在 "IIS 管理器&quo ...
- nginx配置目录访问&用户名密码控制
背景 项目上需要一些共享目录让外地同事可以网页访问对应的文件,且受权限控制: 现有环境: centos nginx 你可以了解到以下内容: 配置nginx开启目录访问 并配置nginx用户名和密码进行 ...
- hive优化之开启压缩功能
1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...
- hive优化,开启压缩功能
1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...
- Nginx开启GZIP来压缩网页
HTTP协议上的GZIP编码是一种用来改进web应 用程序性能的技术.大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度.这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中 ...
- Nginx开启Gzip压缩提升页面加载速度
1.在 nginx 的conf 目录下新建 gzip.conf 文件 #开启gzip压缩 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #申请4个单位为16 ...
- 开启Nginx的gzip压缩功能详解
默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,如果要对html之外的内容进行 ...
- Nginx 开启gzip 压缩,实现基于域名的虚拟主机。
一:gzip(GNU-ZIP)是一种压缩技术. 经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多. gzip 的压缩页面需要浏览器和服务器双方都支持,实际上 ...
随机推荐
- NYOJ-768移位密码,最简单的代替密码;
移位密码 时间限制:1000 ms | 内存限制:65535 KB 难度:0 -> Link <- 还有1个半小时考信息安全导论,昨晚心血来潮在oj上看到这几个题,简直就是水啊 ...
- 2018/2/20 Springretry,Feign,以及用通俗的语言(自认为)教会你关于Hystrix的复杂概念
本来想昨天写的,但临时有事.弄的一晚上都没睡觉,现在头好晕,所以此笔记如果有语言措辞的组织不当,还请见谅:最后,本文可能涉及到大量专业名词,我会尽量用通俗的语句去阐述清楚它们的意思,但如果还是没看懂, ...
- 【NOIP2017练习】怎样更有力气(二分答案,线性扫描)
题意:OI大师抖儿在夺得银牌之后,顺利保送pku.这一天,抖儿问长者:“我虽然已经保送了,但我的志向是为国家健康工作五十年.请问我应该怎样变得更有力气?” 长者回答:“你啊,Too Young T ...
- Spring Cloud体系实现标签路由
如果你正在使用Spring Cloud体系,在实际使用过程中正遇到以下问题,可以阅读本文章的内容作为后续你解决这些问题的参考,文章内容不保证无错,请务必仔细思考之后再进行实践. 问题: 1,本地连上开 ...
- HTML学习之Flex 布局
一.Flex 布局是什么? Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局. .box ...
- Servlet实现国际化
以下内容引用自http://wiki.jikexueyuan.com/project/servlet/internationalization.html: 三个重要术语: 国际化(i18n):这意味着 ...
- MongoDB小结16 - find【查询条件$in】
$in可以查询一个键的多个值 举例,每个人有爱好,假定为一个,数据太多,咱们用第二个参数来过滤一下 db.user.find({},{"_id":0}) { "hobby ...
- Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、文件夹(一)
本节主要内容 怎样获取帮助文档 Linux文件系统简单介绍 文件夹操作 訪问权限 1. 怎样获取帮助文档 在实际工作过程其中,常常会忘记命令的使用方式.比如ls命令后面能够跟哪些參数,此时能够使用ma ...
- linux驱动之中断方式获取键值
linux驱动之中断方式获取键值 ----------------------------------------------------------------------------------- ...
- frameset怎样实现整个页面的跳转
登录页面login.jsp,系统登录成功后展示mainLayout.jsp, 我如今用frameset框架把页面mainLayout.jsp分为三部分,head.jsp..left.jsp.right ...