Syntax: | proxy_next_upstream
|
---|---|
Default: | proxy_next_upstream error timeout; |
Context: | http , server , location |
Specifies in which cases a request should be passed to the next server:
error
- an error occurred while establishing a connection with the server, passing a request to it, or reading the response header;
timeout
- a timeout has occurred while establishing a connection with the server, passing a request to it, or reading the response header;
invalid_header
- a server returned an empty or invalid response;
http_500
- a server returned a response with the code 500;
http_502
- a server returned a response with the code 502;
http_503
- a server returned a response with the code 503;
http_504
- a server returned a response with the code 504;
http_403
- a server returned a response with the code 403;
http_404
- a server returned a response with the code 404;
non_idempotent
- normally, requests with a non-idempotent method (
POST
,LOCK
,PATCH
) are not passed to the next server if a request has been sent to an upstream server (1.9.13); enabling this option explicitly allows retrying such requests; off
- disables passing a request to the next server.
One should bear in mind that passing a request to the next server is only possible if nothing has been sent to a client yet. That is, if an error or timeout occurs in the middle of the transferring of a response, fixing this is impossible.
The directive also defines what is considered an unsuccessful attempt of communication with a server. The cases of error
, timeout
and invalid_header
are always considered unsuccessful attempts, even if they are not specified in the directive. The cases of http_500
, http_502
, http_503
and http_504
are considered unsuccessful attempts only if they are specified in the directive. The cases of http_403
and http_404
are never considered unsuccessful attempts.
Passing a request to the next server can be limited by the number of tries and by time.
Please login to continue.