Requests made with HTTP 1.0 using header "Connection: Close" is overwritten with header "Connection Keep-Alive"
search cancel

Requests made with HTTP 1.0 using header "Connection: Close" is overwritten with header "Connection Keep-Alive"

book

Article ID: 378832

calendar_today

Updated On:

Products

VMware Avi Load Balancer

Issue/Introduction

Requests made with HTTP 1.0 using header "Connection: Close" is overwritten with header "Connection Keep-Alive".

Resolution

Avi's behaviour will depend a little on whether the application profile has "Connection Multiplexing" enabled.


If enabled (which it is in the default HTTP application profiles), the client-side connections and server-side connections are completely decoupled and we are acting as a full L7 request-level proxy. Requests received over client side connections may be sent over different server-side connections using a pool of open connections. Here, connections on the back-end are opened and closed based on the connection pooling settings and are managed by the system.


https://docs.vmware.com/en/VMware-Avi-Load-Balancer/30.2/Configuration-Guide/GUID-0C21D30E-17B3-4618-946D-F6DA3C518DD6.html


If Connection Multiplexing is disabled, then we maintain a 1:1 relationship between client-side and server-side connections. We don't have an option to use "Connection: close" on the server-side request  and we cannot use policies or DataScripts to do anything with Connection headers.


 


Note: One of the main uses of http-server-close option in HAProxy or other LB is to avoid keeping idle connections open on the server side and consuming server resources while keeping the connections open on the client side to reduce latency for a slow connection. The Connection Multiplexing feature achieves the same thing and much more in a different way.