From 104734f21888cfec6994e092073f51a0d4b0fb47 Mon Sep 17 00:00:00 2001 From: Vladimir Homutov Date: Wed, 3 Apr 2013 01:44:36 +0400 Subject: Upstream: added sticky sessions support for upstreams. Sticky sessions allow to route the same client to the same upstream server. - upstream structures are extended to keep session-related information - existing balancing modules are updated to provide an id of the selected server (SID) in pc->sid, and to select the server, given it's SID. - other balancing modules are allowed to set the pc->hint value to choose the desired peer. The sticky module will not change the hint if it's already set. - the feature is enabled by default and can be disabled with the "--without-http_upstream_sticky" switch of the configure script. The following configuration can be used to enable sticky sessions for supported balancing modules: upstream u1 { server 127.0.0.1:8080; server 127.0.0.1:8081; sticky cookie server_id expires=1h domain=.example.com path=/; } Co-authored-by: Ruslan Ermilov Co-authored-by: Roman Arutyunyan Co-authored-by: Maxim Dounin --- auto/modules | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'auto/modules') diff --git a/auto/modules b/auto/modules index c199d89bf..f02691e16 100644 --- a/auto/modules +++ b/auto/modules @@ -950,6 +950,20 @@ if [ $HTTP = YES ]; then . auto/module fi + if [ $HTTP_UPSTREAM_STICKY = YES ]; then + have=NGX_HTTP_UPSTREAM_STICKY . auto/have + have=NGX_HTTP_UPSTREAM_SID . auto/have + + ngx_module_name=ngx_http_upstream_sticky_module + ngx_module_incs= + ngx_module_deps= + ngx_module_srcs=src/http/modules/ngx_http_upstream_sticky_module.c + ngx_module_libs= + ngx_module_link=$HTTP_UPSTREAM_STICKY + + . auto/module + fi + if [ $HTTP_STUB_STATUS = YES ]; then have=NGX_STAT_STUB . auto/have -- cgit