O Haproxy está encerrando as conexões https e encaminhando solicitações para o back-end. Quando o recurso retorna 204 No-Content e Transfer-Encoding: em partes, a conexão de curvatura não está fechada. Quando eu chamo recurso diretamente no backend, a conexão é fechada corretamente. Alguém pode explicar esse comportamento? Isso é algo específico para haproxy ou curl ou é esperado?
Através do haproxy:
curl -X GET https://localhost/example -v
* About to connect() to localhost port 443 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 443 (#0)
> GET /example HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost
> Accept: */*
>
< HTTP/1.1 204 No Content
< Cache-Control: no-cache, no-store, must-revalidate
< Date: Wed, 23 Aug 2017 13:15:16 GMT
< transfer-encoding: chunked
<
^C
Diretamente back-end:
curl -X GET http://localhost:6083/example -v
* About to connect() to localhost port 6083 (#0)
* Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 6083 (#0)
> GET /example HTTP/1.1
> User-Agent: curl/7.29.0
> Host: localhost:6083
> Accept: */*
>
< HTTP/1.1 204 No Content
< Cache-Control: no-cache, no-store, must-revalidate
< Date: Wed, 23 Aug 2017 14:19:03 GMT
< transfer-encoding: chunked
<
* Connection #0 to host localhost left intact