nginx gzip 动态静态压缩详解

yizhihongxing

下面我就来详细讲解“nginx gzip 动态静态压缩详解”的完整攻略,包含两条示例说明。

什么是nginx gzip压缩?

在浏览网页时,如果网页文件比较大,需要下载的时间就相应的变长,这样就会使用户的体验变差。而nginx gzip压缩可以在减小文件体积的同时,不影响文件的功能,从而提高网页的响应速度和用户体验。

nginx gzip动态压缩

动态压缩一般指的是在响应的同时,对HTTP响应体进行压缩。

开启动态压缩

在nginx.conf或者vhost配置文件中添加以下配置:

gzip on;
gzip_types text/plain application/xml text/css application/x-javascript text/javascript application/javascript text/json application/json;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;

解释:

  • gzip on:表示开启gzip压缩功能。
  • gzip_types:表示需要进行gzip压缩的MIME类型列表。
  • gzip_vary:表示在响应头中追加Vary: Accept-Encoding,告诉缓存服务器此响应与使用哪种编码有关。
  • gzip_proxied:表示是否开启反向代理,如果开启,则会对由反向代理服务器获取到的响应进行压缩。
  • gzip_comp_level:表示压缩级别,一般为1-9,数字越大压缩效果越好,但压缩速度就会变慢。
  • gzip_buffers:表示在压缩过程中,缓存数据的区块数和每个区块的大小。
  • gzip_http_version:表示http版本协议使用的压缩算法。

动态压缩示例

在响应时进行gzip压缩:

location / {
  gzip on;
  gzip_types text/plain application/xml text/css application/x-javascript text/javascript application/javascript text/json application/json;
  gzip_vary on;
  gzip_proxied any;
  gzip_comp_level 6;
  gzip_buffers 16 8k;
  gzip_http_version 1.1;
  root /var/www/html;
  index index.html;
}

nginx gzip静态压缩

静态压缩指的是在文件存储时,就对文件进行压缩,以便在需要时直接读取压缩文件,从而减少响应时间。

开启静态压缩

在nginx.conf或者vhost配置文件中添加以下配置:

gzip_static on;

解释:

  • gzip_static on:表示开启nginx对已有gzip文件进行直接读取。

静态压缩示例

为文件添加后缀名“.gz”:

location / {
  root /var/www/html;
  gzip_static on;
  index index.html;
}

或者在编译nginx时添加gzip压缩:

./configure --with-http_gzip_static_module
make
make install

这样就可以直接读取已经进行过压缩的文件了。

总结

nginx gzip静态和动态压缩可以有效地提高网页的响应速度,在nginx配置文件中对应配置即可开启。不同情况下的压缩方式有所差别,需要根据具体需求来开启和使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:nginx gzip 动态静态压缩详解 - Python技术站

(0)
上一篇 2023年5月16日
下一篇 2023年5月16日

相关文章

  • Nginx配置进阶(反向代理,缓存,upstream,fastcgi,session绑定:)

    反向代理,缓存,upstream,fastcgi,session绑定: 反向代理:    nginx: 测试1: location / { proxy_pass http://192.168.112.110/; index index.html; } location /froum/ { proxy_pass http://192.168.112.110/b…

    Nginx 2023年4月13日
    00
  • 利用nginx搭建RTMP视频点播、直播、HLS服务器

    来源:https://blog.csdn.net/kingroc/article/details/50839994

    Nginx 2023年4月9日
    00
  • nginx的location与proxy_pass配置超详细讲解及其有无斜杠( / )结尾的区别

    本文所使用的环境信息如下: windows11 (主机系统) virtual-box-7.0环境下的ubuntu-18.04 nginx-1.22.1 (linux) 斜杠结尾之争 实践中,nginx里最常用的指令就是location和proxy_pass了。前者用于为不同请求uri指定不同nginx配置,后者用于匹配的location进行转发(通常是动态内…

    2023年4月10日
    00
  • Nginx 实现 IP+项目名 访问

    参考: https://blog.csdn.net/csdn1152789046/article/details/51362735   修改前 项目放在Tomcat的webapps/ROOT/ 目录下面 http://IP 直接访问 location / { proxy_set_header Host $host; proxy_set_header X-Re…

    Nginx 2023年4月13日
    00
  • Nginx关闭危险的HTTP请求

    在 server { listen 80; server_name 127.0.0.1 www.baidu.com; 下一行添加一下代码即可关闭除GET|POST|HEAD外的请求方式。 if ($request_method !~* GET|POST|HEAD) { return 403; }  

    Nginx 2023年4月16日
    00
  • nginx通过域名访问项目(不接项目名称),cookie丢失问题详解

     最近搞了个域名,想用它直接去访问Tomcat上部署的项目,开始一直必须加上项目名称,经过短暂配置,成功了。 访问一次,到达登陆页面,结果死活登录不进去,一直在登陆界面,原来是由于cookie丢失,现配置如下,完美解决问题: server { listen 80; #listen somename:8080; server_name www.XXX.cn; …

    Nginx 2023年4月10日
    00
  • Nginx配置指令的执行顺序

    Nginx指令顺序:set与echo location /test { set $a 32; echo $a; set $a 56; echo $a; } # set 指令就是在 rewrite 阶段运行的,而 echo 指令就只会在 content 阶段运行 # rewrite 阶段总是在 content 阶段之前执行 #结果server-rewrite …

    Nginx 2023年4月12日
    00
  • WebSocket实现(nginx、后端)

    一个完整的WebSocket流程(java实现): nginx配置 upstream paas_gateway { least_conn; server ip:port; keepalive 1000; keepalive_timeout 65; } server{ listen 9001; server_name localhost; root /paas…

    Nginx 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部