Hello!
On Wed, Sep 07, 2022 at 09:01:05AM -0400, mirokub wrote:
> Hello,
> Is there a way to configure NGINX to send response (200 OK) only after full
> body of request is delivered?
> Currently the response is sent early before the request body is fully sent.
> More details of my test-case: The request is about 600kB long and it's POST
> method.
The response is sent by nginx when it's available. For static
files and rewrite constructs like "return 200 ok;" this happens
right after the request headers are received, so nginx doesn't try
to wait for the request body before sending the response. In some
cases this might save the client from sending unneeded body to
nginx.
If for some reason you want nginx to only respond when the whole
request body is received, the readily available solution would be
to configured nginx in a way which needs the whole response body
before sending the response. For example, you can configure
additional proxying with proxy_request_buffering switched off (the
default), so nginx will read the whole request body before
proxying the request (and returning the response from the upstream
server):
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8081;
}
}
server {
listen 127.0.0.1:8081;
return 200 ok;
}
Hope this helps.
--
Maxim Dounin
http://mdounin.ru/
_______________________________________________
nginx mailing list -- nginx@nginx.org
To unsubscribe send an email to nginx-leave@nginx.org