Upstream: fixed $upstream_status when upstream returns 503/504.

If proxy_next_upstream includes http_503/http_504, and upstream
returns 503/504, $upstream_status converted this to 502 for any
values except the last one.
This commit is contained in:
Ruslan Ermilov 2017-10-11 22:04:28 +03:00
parent 211d20a230
commit f1be23bc8a

View File

@ -4111,6 +4111,7 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
switch (ft_type) { switch (ft_type) {
case NGX_HTTP_UPSTREAM_FT_TIMEOUT: case NGX_HTTP_UPSTREAM_FT_TIMEOUT:
case NGX_HTTP_UPSTREAM_FT_HTTP_504:
status = NGX_HTTP_GATEWAY_TIME_OUT; status = NGX_HTTP_GATEWAY_TIME_OUT;
break; break;
@ -4118,6 +4119,10 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u,
status = NGX_HTTP_INTERNAL_SERVER_ERROR; status = NGX_HTTP_INTERNAL_SERVER_ERROR;
break; break;
case NGX_HTTP_UPSTREAM_FT_HTTP_503:
status = NGX_HTTP_SERVICE_UNAVAILABLE;
break;
case NGX_HTTP_UPSTREAM_FT_HTTP_403: case NGX_HTTP_UPSTREAM_FT_HTTP_403:
status = NGX_HTTP_FORBIDDEN; status = NGX_HTTP_FORBIDDEN;
break; break;