Mercurial > hg > nginx-quic
comparison src/http/ngx_http_upstream.c @ 6966:fa56ab75cffc
Upstream: allow recovery from "429 Too Many Requests" response.
This change adds "http_429" parameter to "proxy_next_upstream" for
retrying rate-limited requests, and to "proxy_cache_use_stale" for
serving stale cached responses after being rate-limited.
Signed-off-by: Piotr Sikora <piotrsikora@google.com>
author | Piotr Sikora <piotrsikora@google.com> |
---|---|
date | Fri, 24 Mar 2017 02:48:03 -0700 |
parents | 903fb1ddc07f |
children | 0cdee26605f3 |
comparison
equal
deleted
inserted
replaced
6965:3ef4cadfad7f | 6966:fa56ab75cffc |
---|---|
434 { 502, NGX_HTTP_UPSTREAM_FT_HTTP_502 }, | 434 { 502, NGX_HTTP_UPSTREAM_FT_HTTP_502 }, |
435 { 503, NGX_HTTP_UPSTREAM_FT_HTTP_503 }, | 435 { 503, NGX_HTTP_UPSTREAM_FT_HTTP_503 }, |
436 { 504, NGX_HTTP_UPSTREAM_FT_HTTP_504 }, | 436 { 504, NGX_HTTP_UPSTREAM_FT_HTTP_504 }, |
437 { 403, NGX_HTTP_UPSTREAM_FT_HTTP_403 }, | 437 { 403, NGX_HTTP_UPSTREAM_FT_HTTP_403 }, |
438 { 404, NGX_HTTP_UPSTREAM_FT_HTTP_404 }, | 438 { 404, NGX_HTTP_UPSTREAM_FT_HTTP_404 }, |
439 { 429, NGX_HTTP_UPSTREAM_FT_HTTP_429 }, | |
439 { 0, 0 } | 440 { 0, 0 } |
440 }; | 441 }; |
441 | 442 |
442 | 443 |
443 ngx_conf_bitmask_t ngx_http_upstream_cache_method_mask[] = { | 444 ngx_conf_bitmask_t ngx_http_upstream_cache_method_mask[] = { |
4122 status = NGX_HTTP_FORBIDDEN; | 4123 status = NGX_HTTP_FORBIDDEN; |
4123 break; | 4124 break; |
4124 | 4125 |
4125 case NGX_HTTP_UPSTREAM_FT_HTTP_404: | 4126 case NGX_HTTP_UPSTREAM_FT_HTTP_404: |
4126 status = NGX_HTTP_NOT_FOUND; | 4127 status = NGX_HTTP_NOT_FOUND; |
4128 break; | |
4129 | |
4130 case NGX_HTTP_UPSTREAM_FT_HTTP_429: | |
4131 status = NGX_HTTP_TOO_MANY_REQUESTS; | |
4127 break; | 4132 break; |
4128 | 4133 |
4129 /* | 4134 /* |
4130 * NGX_HTTP_UPSTREAM_FT_BUSY_LOCK and NGX_HTTP_UPSTREAM_FT_MAX_WAITING | 4135 * NGX_HTTP_UPSTREAM_FT_BUSY_LOCK and NGX_HTTP_UPSTREAM_FT_MAX_WAITING |
4131 * never reach here | 4136 * never reach here |