在 proxy 模式 下,
如果没有打开gzip,也没做任何其他内容修改操作,那么默认nginx是透传原始server的etag的
如果nginx 启用了gzip:
- 如果原始server响应的头包含 weak etag,则透传给客户端
- 如果原始server响应的头包含的是strong etag,则在返回客户端的时候移除该etag
根据文档 https://nginx.org/en/docs/http/ngx_http_gzip_module.html#gzip_proxied
gzip_proxied指令用于控制含有via头的request请求,对这些请求基于gzip_proxied 后面的配置属性(这些属性又属于upstream的response)来控制是否对response执行gzip压缩。
如果request里没有via头,该指令无效。
例如配置gzip_proxied no_etag;指令(同时指令gzip on打开),意味着:
- 如果request中包含via头,且response中包含etag,则不启用gzip。如果response中没有etag则压缩。
- 如果request中不包含via头,则总是压缩。
另这种配置下,当gzip压缩启用后,如果response本身的etag是strong etag,则etag会被nginx移除;如果response本身的etag是weak etag (W/开头)则该etag会被透传给客户端。
文章评论