我在开发环境中的几个docker容器前面有一个Traefik反向代理。
我最近注意到,当通过端口80(Traefik)提供服务时,大文件被切断了。但是,如果我使用Docker容器上的本地HTTP端口下载文件,则文件很好。
这似乎只影响超过一定大小的文件。
我在我的一个Docker容器上生成了一个大文件。
for ((i=1;i<=200000;i++)); do echo "$i some new line that has a reasonably long length and content" >> public/large-file.txt; done
如果我curl
该文件并绕过Traefik(此容器上的端口4200),则文件完整且每次都具有相同的大小。如果我通过Traefik通过端口80 curl
文件,则该文件在看似随机的位置被切断。
$ curl -O http://localhost/large-file.txt; cat large-file.txt
...
114633 some new line that has a reasonably long length and content
114634 some new line that has a reasonably long length and content
114635 some new line that has a rea
$ curl -O http://localhost/large-file.txt; cat large-file.txt
...
199732 some new line that has a reasonably long length and content
199733 some new line that has a reasonably long length and content
199734 some new line that has a re
基于这种行为,在我看来,这不是Docker问题,而不是我的Web服务器的问题。相反,似乎Traefik有过错。
这是Traefik中的错误,还是潜在的错误配置?
答案 0 :(得分:1)
官方图片为https://hub.docker.com/r/_/traefik https://hub.docker.com/r/containous/traefik由traefik团队制作,但包含实验标签等......
关于您的问题,它可能与1.5.0-rc中的问题有关,正如您在此问题上看到的那样(https://github.com/containous/traefik/issues/2637),但这将在下一个1.5版本中修复