Traefik重写http状态?

我正在经历一个非常奇怪的行为,在kubernetes中使用了traefik(1.3.5)(用作入口(使用稳定图表部署))。

我有一个PHP端点背后的清漆服务器,返回一个404时,我直接curl它没有任何特殊的伎俩。

$ curl -v ingress.../sport/?page=404 > GET /sport/?page=404 HTTP/1.1 > Host: varnish.ingress.xxx > User-Agent: curl/7.43.0 > Accept: */* > < HTTP/1.1 404 Not Found < Age: 0 < Cache-Control: max-age=10, public < Content-Type: text/html; charset=UTF-8 < Date: Wed, 06 Sep 2017 21:19:48 GMT < Server: nginx < Vary: Accept-Encoding < Vary: Accept-Encoding < Via: 1.1 varnish-v4 < X-Cache: MISS < X-Powered-By: PHP/7.1.6 < X-Varnish: 65773 < Transfer-Encoding: chunked < 

这是预期的行为,但是当我用gzip头文件(或用–compressed)通过traefikcurl它时,我有一个http 200 …:up_side_down:

 $ curl -v ...ingress.../sport/?page=404 > GET /sport/?page=404 HTTP/1.1 > Host: varnish.ingress.xxx > User-Agent: curl/7.43.0 > Accept: */* > Accept-Encoding: gzip > < HTTP/1.1 200 OK < Age: 0 < Cache-Control: max-age=10, public < Content-Encoding: gzip < Content-Type: text/html; charset=UTF-8 < Date: Wed, 06 Sep 2017 21:18:38 GMT < Server: nginx < Vary: Accept-Encoding < Vary: Accept-Encoding < Via: 1.1 varnish-v4 < X-Cache: MISS < X-Powered-By: PHP/7.1.6 < X-Varnish: 197657 < Transfer-Encoding: chunked < 

如果我直接在清漆或通过亚马逊elb做相同的testing,我没有问题,总是得到一个404 …

我注意到,traefik正在重新添加Vary: Accept-Encoding标头。

我也注意到server.go:2753: http: multiple response.WriteHeader calls日志消息。

你们有没有人有这种奇怪的行为? 任何线索如何调查?

提前致谢