Problem description:
I perform client PUT request to backend through haproxy with http keepalive and 
"Expect: 100-continue" header set. In case of backend response with 201 code 
and "Connection: close" header, haproxy forwards backend response to client, 
but does not close connection to backend and forwards next request from client 
to the same http session to backend. Also, as i see in dump, client headers in 
the next request of the current session are not modified. When backend responds 
with "100-Continue" everything works as expected. 
It seems, that problem present with any backend response different from 
"100-Continue".

Is there any way to make haproxy deal with "100-Continue" well, or may be this 
is a bug?


HA-Proxy version 1.7.9-1ppa1~trusty 2017/08/19

Test config is simple:

global
        log /dev/log  local0 debug
        log 127.0.0.1 local0 debug
        chroot /var/lib/haproxy
        user haproxy
        group haproxy
        daemon

defaults
        log     global
        mode    http
        option  httplog
        option  http-keep-alive
        timeout connect 20m
        timeout client 50m
        timeout server  50m
        errorfile 400 /etc/haproxy/errors/400.http
        errorfile 403 /etc/haproxy/errors/403.http
        errorfile 408 /etc/haproxy/errors/408.http
        errorfile 500 /etc/haproxy/errors/500.http
        errorfile 502 /etc/haproxy/errors/502.http
        errorfile 503 /etc/haproxy/errors/503.http
        errorfile 504 /etc/haproxy/errors/504.http

backend test
        server 01 127.0.0.1:8080
        http-request add-header X-Haproxy is_here
        option forwardfor header X-Real-IP

frontend test_front
        bind *:80
        default_backend test

Reply via email to