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