我们看到了一些非常奇怪的 HTTP 响应修改,我们无法弄清楚这是怎么回事。我们有一个处理 JSON 请求的应用服务器。有时,响应以 gzip 格式返回,但包含不正确的标头,导致浏览器无法正确解释它。
这个问题是间歇性的,随着时间的推移会改变行为。昨天早上它似乎有 50% 的时间失败,事实上,它似乎与我们的两台负载平衡服务器之一有关。下午晚些时候,它在 1000 次中只有 20 次失败,并且与应用服务器无关。
这两个应用程序服务器运行 Apache 2.2,带有 mod_wsgi 和一个 Django 应用程序堆栈。它们具有相同的 Apache 配置和源代码树,甚至在 Red Hat 上安装了相同的软件包。前面有一个硬件负载均衡器,我不知道品牌或型号。
Akamai 也是食物链的一部分,尽管我们移除了 Akamai,但问题仍然存在。
这是一个很好的请求和响应:
* Connected to example.com (97.7.79.129) port 80 (#0)
> POST /claim/ HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
> Host: example.com
> Accept: */*
> Referer: http://example.com/apps/
> Accept-Encoding: gzip,deflate
> Content-Length: 29
> Content-Type: application/x-www-form-urlencoded
>
} [data not shown]
< HTTP/1.1 200 OK
< Server: Apache/2 …Run Code Online (Sandbox Code Playgroud)