feature: added the balancer_status_code patch to the nginx core to allow returning arbitrary HTTP status codes inside upstream balancers.
Signed-off-by: Yichun Zhang (agentzh) <agentzh@gmail.com>
This commit is contained in:
parent
b1400169a7
commit
3b74625ad3
|
@ -0,0 +1,27 @@
|
||||||
|
diff --git a/src/http/ngx_http_upstream.c b/src/http/ngx_http_upstream.c
|
||||||
|
index 0f6b3ae..56d44fc 100644
|
||||||
|
--- a/src/http/ngx_http_upstream.c
|
||||||
|
+++ b/src/http/ngx_http_upstream.c
|
||||||
|
@@ -1368,6 +1368,11 @@ ngx_http_upstream_connect(ngx_http_request_t *r, ngx_http_upstream_t *u)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ if (rc >= NGX_HTTP_SPECIAL_RESPONSE) {
|
||||||
|
+ ngx_http_upstream_finalize_request(r, u, rc);
|
||||||
|
+ return;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
u->state->peer = u->peer.name;
|
||||||
|
|
||||||
|
if (rc == NGX_BUSY) {
|
||||||
|
diff --git a/src/http/ngx_http_upstream.h b/src/http/ngx_http_upstream.h
|
||||||
|
index b288f28..9b60e12 100644
|
||||||
|
--- a/src/http/ngx_http_upstream.h
|
||||||
|
+++ b/src/http/ngx_http_upstream.h
|
||||||
|
@@ -418,5 +418,6 @@ extern ngx_module_t ngx_http_upstream_module;
|
||||||
|
extern ngx_conf_bitmask_t ngx_http_upstream_cache_method_mask[];
|
||||||
|
extern ngx_conf_bitmask_t ngx_http_upstream_ignore_headers_masks[];
|
||||||
|
|
||||||
|
+#define HAVE_BALANCER_STATUS_CODE_PATCH
|
||||||
|
|
||||||
|
#endif /* _NGX_HTTP_UPSTREAM_H_INCLUDED_ */
|
|
@ -55,6 +55,13 @@ else
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
answer=`$root/util/ver-ge "$main_ver" 1.11.2`
|
||||||
|
if [ "$answer" = "Y" ]; then
|
||||||
|
echo "$info_txt applying the balancer_status_code patch"
|
||||||
|
patch -p1 < $root/patches/nginx-$main_ver-balancer_status_code.patch || exit 1
|
||||||
|
echo
|
||||||
|
fi
|
||||||
|
|
||||||
answer=`$root/util/ver-ge "$main_ver" 1.11.2`
|
answer=`$root/util/ver-ge "$main_ver" 1.11.2`
|
||||||
if [ "$answer" = "Y" ]; then
|
if [ "$answer" = "Y" ]; then
|
||||||
echo "$info_txt applying the builtin_error_page_footer patch"
|
echo "$info_txt applying the builtin_error_page_footer patch"
|
||||||
|
|
Loading…
Reference in New Issue