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
日志消息。
你们有没有人有这种奇怪的行为? 任何线索如何调查?
提前致谢
那么,这是一个已知的问题https://github.com/containous/traefik/pull/1948将在1.4.0发货
M.