关于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
关于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
楼上的解释是完全错误的。不知楼上如何解释“是否压缩取决于请求头中的“Via”字段”这句话?
正确答案是:此指令指示的是当nginx自己处在反代之后时,是否开启gzip。只有这样,请求头中才会包含Via
字段。
该参数应该有两个点让人困惑:
gzip_proxied 处理对象的困惑:
nginx 开启gzip压缩的原因,是为了减少网络传输速度
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大模块如何结合使用,希望大佬写一篇文章
8 回答3.8k 阅读
2 回答3.1k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
4 回答1.9k 阅读
1 回答1.4k 阅读✓ 已解决
4 回答1.5k 阅读
1 回答1.4k 阅读✓ 已解决
题主这么说,应该是对
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 - 无条件启用压缩