I am running ingress nginx to front an API that streams uploads into S3. I don’t want a long delay after the file has been transferred so I have disabled proxy_request_buffering. The ingress nginx serves other services that require http2, so disabling it is not an option. With http2 enabled, uploads are 5-100x slower depending on the uploader’s latency to the the server.
Http1 uploads in nginx ingress work well with the default buffer configuration. HTTP2 uploads require more buffer space. Setting client-body-buffer-size
in the ingress-nginx-controller
configmap was sufficient for my use case.