0

我有 nginx 反向代理,它从上游(清漆缓存)接收 brotli 压缩响应。但是,只有当我设置“brotli on”时,反向代理才会向浏览器提供 brotli 压缩响应;在反向代理服务器块内。

我的目标是让 nginx 反向代理根本不处理压缩。为此,我有以下问题:

  1. 反向代理块是否有望解压缩收到的响应并自行处理?它不能直接将上游响应传递回客户端吗?

  2. 有没有办法将代理响应或它的大小转储到 nginx 日志?这将有助于更好地调试问题。

4

1 回答 1

0

我已经解决了这个问题,所以将这个发布给任何可能遇到类似问题的人:

  1. Varnish 将我的“Accept-Encoding”请求标头更改为“gzip”。根据 Varnish 文档,这是按设计的(请参阅此处)。
  2. 但是,上游 nginx 服务器(在 varnish 后面)以非压缩内容响应,因为默认为gzip_http_version1.0,而默认为proxy_http_version1.1。(见这里

解决方案是通过以下方式实现的:

一种。将 Varnish 设置为不担心通过传递-p http_gzip_support=offvarnishd.

湾。在上游 Nginx 服务器上设置gzip_http_version为。1.1

解密上述行为成为可能,因为我在上游 nginx 服务器(varnish 后面的服务器)上记录了以下内容:

log_format bytes_sent '$bytes_sent' - '$http_accept_encoding' - '$request';
于 2020-09-28T06:46:27.247 回答