准备工作

  如果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网页压缩功能的更多相关文章

  1. CentOS下Apache开启Gzip网页压缩功能

    1.进入/etc/httpd/conf下打开httpd.conf文件 开启Gzip压缩功能,即去掉LoadModule deflate_module modules/mod_deflate.so这行前 ...

  2. Windows2003 IIS开启Gzip网页压缩

    1.单击"开始"-"管理工具"-"Internet 信息服务(IIS)管理器",打开IIS管理器:2.在 "IIS 管理器&quo ...

  3. nginx配置目录访问&用户名密码控制

    背景 项目上需要一些共享目录让外地同事可以网页访问对应的文件,且受权限控制: 现有环境: centos nginx 你可以了解到以下内容: 配置nginx开启目录访问 并配置nginx用户名和密码进行 ...

  4. hive优化之开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...

  5. hive优化,开启压缩功能

    1.开启hive作业mapreduce任务中间压缩功能: 对于数据进行压缩可以减少job中map和reduce task间的数据传输量.对于中间数据压缩,选择一个低cpu开销编/解码器要不选择一个压缩 ...

  6. Nginx开启GZIP来压缩网页

    HTTP协议上的GZIP编码是一种用来改进web应 用程序性能的技术.大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度.这一般是指WWW服务器中安装的一个功能,当有人来访问这个服务器中 ...

  7. Nginx开启Gzip压缩提升页面加载速度

    1.在 nginx 的conf 目录下新建 gzip.conf 文件 #开启gzip压缩 gzip on; #设置允许压缩的页面最小字节数 gzip_min_length 1k; #申请4个单位为16 ...

  8. 开启Nginx的gzip压缩功能详解

    默认情况下,Nginx的gzip压缩是关闭的, gzip压缩功能就是可以让你节省不少带宽,但是会增加服务器CPU的开销哦,Nginx默认只对text/html进行压缩 ,如果要对html之外的内容进行 ...

  9. Nginx 开启gzip 压缩,实现基于域名的虚拟主机。

    一:gzip(GNU-ZIP)是一种压缩技术. 经过gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会块得多. gzip 的压缩页面需要浏览器和服务器双方都支持,实际上 ...

随机推荐

  1. ORACLE数据库查看执行计划的方法

    一.什么是执行计划(explain plan) 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述. 二.如何查看执行计划 1: 在PL/SQL下按F5查看执行计划.第三方工具toad等 ...

  2. hdu 361B

    #include<stdio.h> int a[100100]; int main() { int n,i,k; while(scanf("%d%d",&n,& ...

  3. [NOIP2006] 提高组 洛谷P1065 作业调度方案

    题目描述 我们现在要利用m台机器加工n个工件,每个工件都有m道工序,每道工序都在不同的指定的机器上完成.每个工件的每道工序都有指定的加工时间. 每个工件的每个工序称为一个操作,我们用记号j-k表示一个 ...

  4. 关于jquery stopPropagation()阻止冒泡事件

    我们经常会遇到点击两个或者多个重叠的层事件的时候,往往点击最里的的一层会接连触发外面的点击事件.这时候就需要用到stopPropagation事件即阻止冒泡事件html代码如下<!DOCTYPE ...

  5. 在mysql数据库中,文章表设计有啥好的思路

    Q: 用mysql设计一张文章表,不知道有啥好的思路! 我是这样的,应为考虑附件和图片,所以我的文章表除了有varchar(1000)的文章内容,还设置了个Bolb接收附件和图片. 我用的是mysql ...

  6. java 8种基本类型与对应的包装类

    数据类型 包装类 字节长度 默认值 有效位 byte Byte 1 0 -128~127 short Short 2 0 -32768~32767 int Integer 4 0 -2^31-1~2^ ...

  7. Ubuntu 16.04安装WebStorm

    前提:必须正确安装JDK. 下载: http://confluence.jetbrains.com/display/WI/WebStorm+EAP 或者下载历史版本:https://www.jetbr ...

  8. C++ RTTI介绍

    一.定义:RTTI:Run Time Type Identification ,执行时类型识别:指程序可以使用基类的指针或引用来检索其所指对象的实际派生类型. 二.使用方式:C++中有两个操作符提供R ...

  9. C#的SplitPanel如何设置上下和左右

    定位到Orientation属性即可

  10. Django打造大型企业官网(二)

    三.项目环境搭建 3.1.创建项目环境和安装包 创建django项目 mkvirtualenv DjangoProject workon DjangoProject pip install -i ht ...