diff --git a/.requirements b/.requirements index e7e18b6d1e6e..2f3b704e3705 100644 --- a/.requirements +++ b/.requirements @@ -15,7 +15,7 @@ LIBEXPAT_SHA256=d4cf38d26e21a56654ffe4acd9cd5481164619626802328506a2869afab29ab3 # Note: git repositories can be loaded from local path if path is set as value -LUA_KONG_NGINX_MODULE=f85f92191fb98dbeec614a418d46b008f6a107ce # 0.14.0 +LUA_KONG_NGINX_MODULE=c967e8326179c86680c0f34d82ee087765aed19a # 0.15.0 LUA_RESTY_LMDB=9da0e9f3313960d06e2d8e718b7ac494faa500f1 # 1.6.0 LUA_RESTY_EVENTS=bc85295b7c23eda2dbf2b4acec35c93f77b26787 # 0.3.1 LUA_RESTY_SIMDJSON=7e6466ce91b2bc763b45701a4f055e94b1e8143b # 1.1.0 diff --git a/build/openresty/patches/nginx-1.25.3_10-proxy-upstream-next.patch b/build/openresty/patches/nginx-1.25.3_10-proxy-upstream-next.patch new file mode 100644 index 000000000000..a17fb086612d --- /dev/null +++ b/build/openresty/patches/nginx-1.25.3_10-proxy-upstream-next.patch @@ -0,0 +1,29 @@ +diff --git a/bundle/nginx-1.25.3/src/http/ngx_http_upstream.c b/bundle/nginx-1.25.3/src/http/ngx_http_upstream.c +index 2be233c..7f7132d 100644 +--- a/bundle/nginx-1.25.3/src/http/ngx_http_upstream.c ++++ b/bundle/nginx-1.25.3/src/http/ngx_http_upstream.c +@@ -2563,7 +2563,11 @@ ngx_http_upstream_test_next(ngx_http_request_t *r, ngx_http_upstream_t *u) + } + + if (u->peer.tries > 1 ++#if (NGX_HTTP_LUA_KONG) ++ && ((ngx_http_lua_kong_get_next_upstream_mask(r, u->conf->next_upstream) & mask) == mask) ++#else + && ((u->conf->next_upstream & mask) == mask) ++#endif + && !(u->request_sent && r->request_body_no_buffering) + && !(timeout && ngx_current_msec - u->peer.start_time >= timeout)) + { +@@ -4420,7 +4424,12 @@ ngx_http_upstream_next(ngx_http_request_t *r, ngx_http_upstream_t *u, + } + + if (u->peer.tries == 0 ++#if (NGX_HTTP_LUA_KONG) ++ || ((ngx_http_lua_kong_get_next_upstream_mask(r, u->conf->next_upstream) & ft_type) != ft_type) ++#else + || ((u->conf->next_upstream & ft_type) != ft_type) ++#endif ++ + || (u->request_sent && r->request_body_no_buffering) + || (timeout && ngx_current_msec - u->peer.start_time >= timeout)) + { diff --git a/changelog/unreleased/kong/feat-patch-supprt-set_next_upstream.yml b/changelog/unreleased/kong/feat-patch-supprt-set_next_upstream.yml new file mode 100644 index 000000000000..b7df2cc1113c --- /dev/null +++ b/changelog/unreleased/kong/feat-patch-supprt-set_next_upstream.yml @@ -0,0 +1,4 @@ +message: | + Add a patch for kong.resty.set_next_upstream() to control the next upstream retry logic in lua side. [Kong/lua-kong-nginx-module#98](https://github.com/Kong/lua-kong-nginx-module/pull/98) +type: bugfix +scope: Core \ No newline at end of file