100-Continue and Google load balancer

This is how to solve 100-continue problem with google http/s load balancer.
Currently google HTTP/S load balancer does not support the Expect: 100-continue POST header .
as a result clients who sends this header in their request will fail to get response back from the web server .
A work around I found is to simply ignore the header , this way the web server will not try to do 100-continue
and Google load balancer will not send the 100-continue header back to client and as describe in the RFC 2616 8.2.3
the client should send the content after short TTL , and this actually works fine.

Because of the presence of older implementations, the protocol allows ambiguous situations in which a client may send “Expect: 100- continue” without receiving either a 417 (Expectation Failed) status or a 100 (Continue) status. Therefore, when a client sends this header field to an origin server (possibly via a proxy) from which it has never seen a 100 (Continue) status, the client SHOULD NOT wait for an indefinite period before sending the request body.

Example settings of removing this header for Nginx :

more_clear_input_headers expect;
Posted in Tips and Tricks Tagged with: , , , ,