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
|
||||
|
||||
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`
|
||||
if [ "$answer" = "Y" ]; then
|
||||
echo "$info_txt applying the builtin_error_page_footer patch"
|
||||
|
|
Loading…
Reference in New Issue