0

我在 kubernetes 中使用 traefik (1.3.5) 时遇到了一种非常奇怪的行为(用作入口(使用稳定图表部署))。

我在清漆服务器后面有一个 php 端点,当我直接卷曲它时返回 404,没有任何特殊技巧。

$ 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)通过 traefik 卷曲它时,我有一个 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 进行相同的测试,我没有问题并且总是得到 404 ...

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

我还注意到几十条server.go:2753: http: multiple response.WriteHeader calls日志消息。

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

提前致谢

4

1 回答 1

0

好吧,这是一个已知问题https://github.com/containous/traefik/pull/1948将在 1.4.0 中发布

M。

于 2017-09-06T21:38:17.040 回答