关于Nginx配置文件Gzip的配置问题:不太明白这个gzip_proxied的作用是什么,应该如何正确配置呢?

发布于 2022-09-01 06:27:23 字数 269 浏览 13 评论 0

关于Nginx配置文件Gzip的配置问题:不太明白这个gzip_proxied的作用是什么,应该如何正确配置呢?

官方说明如下:
Syntax: gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any ...;
Default: gzip_proxied off;
Context: http, server, location

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

白衬杉格子梦 2022-09-08 06:27:23

题主这么说,应该是对gzip_comp_level,gzip_types,gzip_vary等配置已经了解了。
我们来谈一下这个gzip_proxied
Nginx作为反向代理的时候启用,根据某些请求和应答来决定是否在对代理请求的应答启用gzip压缩,是否压缩取决于请求头中的“Via”字段,指令中可以同时指定多个不同的参数,意义如下:
expired - 启用压缩,如果header头中包含 "Expires" 头信息
no-cache - 启用压缩,如果header头中包含 "Cache-Control:no-cache" 头信息
no-store - 启用压缩,如果header头中包含 "Cache-Control:no-store" 头信息
private - 启用压缩,如果header头中包含 "Cache-Control:private" 头信息
no_last_modified - 启用压缩,如果header头中不包含 "Last-Modified" 头信息
no_etag - 启用压缩 ,如果header头中不包含 "ETag" 头信息
auth - 启用压缩 , 如果header头中包含 "Authorization" 头信息
any - 无条件启用压缩

沫离伤花 2022-09-08 06:27:23

楼上的解释是完全错误的。不知楼上如何解释“是否压缩取决于请求头中的“Via”字段”这句话?

正确答案是:此指令指示的是当nginx自己处在反代之后时,是否开启gzip。只有这样,请求头中才会包含Via字段。

野生奥特曼 2022-09-08 06:27:23

gzip_proxied 困惑

该参数应该有两个点让人困惑:

  1. 困惑一:处理对象
  2. 困惑二:参数值,具体如何实现

困惑一:处理对象

gzip_proxied 处理对象的困惑:

  • 服务器发送:proxy 模块接收到其它nginx服务器反向代理发送过来的数据
  • 高级语言发送:proxy fastcgi uwsgi scgi 等代理接收高级语言发送的数据

分析

nginx 开启gzip压缩的原因,是为了减少网络传输速度

以php-fpm举例:

php-fpm 通常是跟nginx的 fastcgi 模块结合使用

php-fpm 并非一定在本地,也可以是其它服务器发送过来,接收数据时也应该nginx支持gzip发送出去,理论分析上,gzip_proxied 应该同时支持服务器和高级语言发送过来的数据

困惑一:参数值具体实现

待续...

以上是我分析的结果,未必是真实,希望大佬指导下

压缩这块应该涉及到4大模块

- ngx_http_headers_module  缓存文件,节省文件传输,以及*.gz压缩文件缓存
- ngx_http_gzip_static_module 优先发送*.gz文件,节省cpu压缩消耗 
- ngx_http_gunzip_module 对不支持gzip头的客户端设置
- ngx_http_gzip_module 开启gzip

这4大模块如何结合使用,希望大佬写一篇文章

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文