nginx开启gzip压缩功能遇到的坑

2023-11-06

nginx开启gzip压缩功能一大堆,网上大多数配置如下:

server {
  listen 8080;
  proxy_http_version 1.1;

    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 8;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";

  location / {
    index  index.html index.htm;
    root   /home/xiaoju/land-ui/dist/;
    try_files $uri $uri/ /index.html;

  }

}

今天由于项目需要,配置后实测不生效,经过一翻排查,问题最终锁定在了gzip_types类型上,确保覆盖了你希望压缩的文件类型,我把这边的问题定位思路缕一下,如果你也遇到了也许能够帮忙到你。

问题根本原因分析:

$ curl -I -H "Accept-Encoding: gzip, deflate" "http://localhost:8080/antd.dll.js"
HTTP/1.1 200 OK
Server: nginx/1.15.0
Date: Wed, 22 Aug 2018 07:56:54 GMT
Content-Type: application/javascript
Content-Length: 1414757
Last-Modified: Wed, 22 Aug 2018 02:43:33 GMT
Connection: keep-alive
ETag: "5b7ccdd5-159665"
Accept-Ranges: bytes

返回结果里没有 Content-Encoding: gzip ,所以可以肯定的gzip配置后没有生效,会发现reponse header里的值是application/javascript ,而我们配置的gzip_types是不包含这种类型的。所以解决办法也很简单,修改其中的内容行:

    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

进一步验证下修改后的情况(修改后记得执行 nginx -s reload 哟)

$ curl -I -H "Accept-Encoding: gzip, deflate" "http://localhost:8080/antd.dll.js"
HTTP/1.1 200 OK
Server: nginx/1.15.0
Date: Wed, 22 Aug 2018 08:12:23 GMT
Content-Type: application/javascript
Last-Modified: Wed, 22 Aug 2018 02:43:33 GMT
Connection: keep-alive
Vary: Accept-Encoding
ETag: W/"5b7ccdd5-159665"
Content-Encoding: gzip

OK,问题已经解决了,如果还有其它文件类型没有被压缩所以参考这个方法就可以解决的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx开启gzip压缩功能遇到的坑 的相关文章

随机推荐

  • 【计算机网络系列】网络层④:详解IP数据包的格式

    IP数据报的格式 IP数据报的格式说明协议IP都具有什么功能 在协议IP的标准中 描述首部格式的宽度是32位 即4字节 下图是IP数据报的完整格式 从上图可看出 一个IP数据报由首部和数据两部分组成 首部的前一部分长度是固定的 共20字节
  • 炉石传说一直显示重新连接服务器,炉石传说一直显示战网开启中 炉石传说卡在启动战网解决办法...

    很多炉石玩家在登录战网客户端出现炉石传说正在启动战网不动的问题 下面小编为大家带来炉石传说卡在启动战网解决办法 一起来看下吧 很多炉石玩家在登录战网客户端出现炉石传说正在启动战网不动的问题 下面小编为大家带来炉石传说卡在启动战网解决办法 一
  • 基于AntDesign Vue的响应式登录页面

    为了做一个自己的前后端分离的后台管理系统 特地做了一下登录页面 大概的架子如下 后面需要替换一下顶部导航的信息 先大概贴一下代码 以后直接复制使用 整体的布局是自己写的样式 如果后面要替换为其他的UI框架 比如element ui ivie
  • selenium打开edge浏览器闪退问题

    selenium打开浏览器闪退问题 本文记录selenium在打开浏览器后会自动闪退问题 版本如下 需保证浏览器驱动为对应版本 官方给的下载驱动的地址为 https developer microsoft com zh cn microso
  • javaScript的数学计算

    js自带的数学计算的方法 默认加减乘除符号 NaN与任意操作数加减乘除 结果都是NaN 加法 数字与字符串相加会拼接成字符串 特殊操作数的求和 n代表任意数字 NaN与任意操作数相加 结果都是NaN console log NaN n In
  • Tibco EMS 初级使用方法小结

    TIBCO Enterprise Message Service 是一个消息服务器产品 它采用C语言编写 完全支持JMS的通讯协议 在运行速度和消息吞吐量上表现非常出色 对于Windows Linux Mac AIX平台都提供支持 关于这个
  • vscode_c++_slambook 编译配置

    工作目录 配置文件 launch json version 0 2 0 configurations name slamBook程序调试 type cppdbg request launch program fileDirname buil
  • MySQL高级:(十二)MySQL事务日志

    笔记来源 MySQL数据库教程天花板 mysql安装到mysql高级 强 硬 文章目录 12 1 事务日志概述 12 2 redo日志 12 2 1 为什么需要redo日志 12 2 2 redo日志的好处 特点 12 2 3 redo日志
  • 【CI/CD】基于 Jenkins+Docker+Git 的简单 CI 流程实践(上)

    基于 Jenkins Docker Git 的简单 CI 流程实践 上 在如今的互联网时代 随着软件开发复杂度的不断提高 软件开发和发布管理也越来越重要 目前已经形成一套标准的流程 最重要的组成部分就是 持续集成 及 持续交付 部署 在此
  • 华为OD机试 - 叠积木(Java)

    题目描述 有一堆长方体积木 它们的宽度和高度都相同 但长度不一 小橙想把这堆积木叠成一面墙 墙的每层可以放一个积木 也可以将两个积木拼接起来 要求每层的长度相同 若必须用完这些积木 叠成的墙最多为多少层 输入描述 输入为一行 为各个积木的长
  • 如何检测勒索软件攻击

    什么是勒索软件 勒索软件又称勒索病毒 是一种特殊的恶意软件 又被归类为 阻断访问式攻击 denial of access attack 与其他病毒最大的不同在于攻击方法以及中毒方式 攻击方法 攻击它采用技术手段限制受害者访问系统或系统内的数
  • c++ 实现职工管理系统

    一 案例描述 某公司中的职工分为三种 普通员工 经理和老板 每个职工都有自己的职工编号 姓名 年龄 电话号码和岗位 管理系统需要实现的功能如下 添加职工信息 显示职工信息 删除离职职工 修改职工信息 查找职工信息 职工编号排序 清空职工信息
  • git回滚到指定版本,并提交到远程分支

    1 git reflog 可以查看所有分支的所有操作记录包括已经被删除的commit记录和reset的操作 2 git log 可以显示所有提交过的版本信息 二者的区别 用git log 则看不出来被删除的commitid 用git ref
  • cookie session总结

    Cookie是由服务器创建 然后通过响应发送给客户端的一个键值对 客户端会保存Cookie 并会标注出Cookie的来源 哪个服务器的Cookie Cookie规范 Cookie通过请求头和响应头在服务器与客户端之间传输 Cookie大小上
  • 踩坑:git或gitee之上传超过100M文件

    直接说 如果你是免费用户 g远程仓库是gitee 那么对不起 你没法上传超过100M的大文件 不支持git fls 只有企业项目 才支持 如果你的远程仓库是git 那么借助git fls就可以了 至于怎么使用 网上一大堆博客 我就不浪费篇幅
  • hive 使用 jndi 数据源时已经在 Tomcat 中配置好 但是在 java 代码中获取数据源就会报错

    这个是异常信息 javax naming NoInitialContextException Need to specify class name in environment or system property or as an app
  • kafka系统的架构

    系统的架构 主题topic和分区partition topic Kafka中存储数据的逻辑分类 你可以理解为数据库中 表 的概念 比如 将app端日志 微信小程序端日志 业务库订单表数据分别放入不同的topic partition分区 提升
  • 数值分析 第一章:绪论

    第一章 绪论 1 2误差基础知识 1 2 1误差来源 1 2 2误差度量 1 2 3初值误差传播 1 3 舍入误差分析及数值稳定性 1 2误差基础知识 1 2 1误差来源 数学模型与实际问题的差异称为模型误差 数学模型中常常还包含有一些参数
  • 一起学SF框架系列附-Springframework源码学习总结

    学习过程 学习Springframework6 0 8 前后将近4个月终于结束了 学习主要内容如图 红框 本次学习主要针对核心模块 Beans Context Core SpEL 完全独立于框架的 没深入学习 AOP 以SF应用的初始化过程
  • nginx开启gzip压缩功能遇到的坑

    nginx开启gzip压缩功能一大堆 网上大多数配置如下 server listen 8080 proxy http version 1 1 gzip on gzip min length 1k gzip buffers 4 16k gzi