前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx网络压缩 CSS压缩 图片压缩 JSON压缩

Nginx网络压缩 CSS压缩 图片压缩 JSON压缩

原创
作者头像
赛先生和泰先生
发布2022-02-08 09:21:58
5.2K0
发布2022-02-08 09:21:58
举报
文章被收录于专栏:Java知识图谱Java知识图谱

一、序言

使用Nginx作为web应用服务时,会代理如下常见文件:jscssJSON图片等,本文提供基于Nginx内置的压缩技术,提供网络请求响应速度的解决方案。

1、网络压缩原理

网络压缩的原理是消耗CPU资源,减少文件在公网传输的大小,提高响应速度。相比于CPU的计算资源,网络带宽通常较为昂贵,因此通过CPU资源置换网络带宽资源在实际生产中是可行的操作方案。

二、网络压缩

此部分所有的压缩内容在浏览器端都会还原,特别需要指出的是图片,图片在网络间是压缩状态传输的,到达浏览器后是会被还原的。

技术实现依托gzip压缩,仅仅在服务器与客户端网络传输时对静态资源进程压缩,文件的大小在压缩前与还原后保持不变。

(一)Web资源
1、静态资源

前端项目中js/css文件越来越大,对其执行压缩处理越来越有必要。

代码语言:java
复制
gzip on;
gzip_comp_level 5;
gzip_min_length 10K;
gzip_types application/javascript text/css;
2、动态资源

通过代理后端服务返回的JSON数据属于动态资源的一种。对于一些较大的JSON响应体,为加快响应速度,通常也需要做压缩处理。

代码语言:javascript
复制
gzip on;
gzip_comp_level 5;
gzip_min_length 50K;
gzip_types application/json;
(二)图片资源
1、图片文件

常见的图片文件格式有PNG、JPG、JPEG。

代码语言:javascript
复制
gzip on;
gzip_comp_level 5;
gzip_min_length 50K;
gzip_types image/jpeg image/gif image/png;

三、图片压缩

Nginx能够动态实现常见格式图片的压缩与裁剪,动态减小网络传输的文件大小。图片压缩分为两类:一是等比压缩;二是固定宽高压缩。根据应用场景的不同也分为两类:一是固定参数;二是动态参数。

此部分图片压缩后到达浏览器不会被还原。

(一)等比压缩

使用关键词resize实现等比压缩,指定宽度或者高度即可在原尺寸图片的基础上等比率压缩图片。如果同时指定宽度和高度,只有一个参数生效。

1、静态参数

固定宽度,高度自适应

代码语言:javascript
复制
location / {
  image_filter resize 320 -;
}

固定高度,宽度自适应

代码语言:javascript
复制
location / {
  image_filter resize - 320;
}
2、动态参数

资源uri路径与静态资源存储路径保持一致。

动态指定宽度,高度自适应

代码语言:javascript
复制
location ~* /(.+)\.(jpg|jpeg|gif|png)!(\d+)$ {
  image_filter resize $3 -;
  image_filter_buffer 10M;
  try_files /$1.$2 /default.png;
  root   html;
}
(二)固定宽高压缩

使用关键词crop实现等宽等高裁剪。

1、静态参数

固定裁剪

代码语言:javascript
复制
location / {
  image_filter crop 1080 1080;
}
2、动态参数
代码语言:javascript
复制
location ~* /(.+)\.(jpg|jpeg|gif|png)!(\d+)x(\d+)$ {
  image_filter crop $3 $4;
  image_filter_buffer 10M;
  try_files /$1.$2 /default.png;
  root   html;
}
(三)默认图片

try_files指令设置默认图片资源,如果找不到对应资源,则使用默认图片。

代码语言:java
复制
location ~* /(.+)\.(jpg|jpeg|gif|png)$ {
  try_files /$1.$2 /default.png;
  root   html;
}

原文地址

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、序言
    • 1、网络压缩原理
    • 二、网络压缩
      • (一)Web资源
        • 1、静态资源
        • 2、动态资源
      • (二)图片资源
        • 1、图片文件
    • 三、图片压缩
      • (一)等比压缩
        • 1、静态参数
        • 2、动态参数
      • (二)固定宽高压缩
        • 1、静态参数
        • 2、动态参数
      • (三)默认图片
      相关产品与服务
      图片处理
      图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档