June 26, 2012 10:14AM
Hi,

We use nginx-sticky-module for session persistence and we planned to use nginx_http_upstream_check_module for to check the upstream service health.

Scenario: We expect nginx_http_upstream_check_module to check the service (return 2xx|3xx) and take it out from the upstream pool if the "service" is not responsive. And nginx-sticky should respect the decision taken by nginx_http_upstream and start new session to available upstream server. However, the upstream server is up with the service port; only the content not being served.

The problem in this scenario, Nginx continue to serve the failed upstream server until we shutdown the upstream service port. Note that http_upstream module status page indicates the respective service is down upon I glitch the service.

I think nginx-sticky got the previous cookie and found the peer match which is the failed server and continue to maintain the previous session. If I shutdown the server/port, then sticky tries available peers and create a new session with available upstream server.

What we need is nginx-sticky module to respect the decision taken by the nginx_http_upstream module as the priority is "service" availability not just the "server and port" availability. We run jboss on upstream servers and the probability is very high the service is malfunction but the jboss server is up. These two modules are working fine individually.

Here is the configuration I have tried. We really need your support on possible configuration options to get this two modules work together.

upstream cluster {
sticky;
server 192.168.0.61:8081;
server 192.168.0.61:8082;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
check_http_send "GET /keepalive.html HTTP/1.0\r\n\r\n";
check_http_expect_alive http_2xx http_3xx;
}

server {
listen 80;
server_name localhost;

access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;

location /stat {
check_status;
}

location /test {
proxy_pass http://cluster/service1/test.html;
error_log /var/log/nginx/error.log debug;
}

Here is my nginx version:

nginx version: nginx/1.2.1-1
built by gcc 4.1.2 20080704 (Red Hat 4.1.2-48)
TLS SNI support disabled
configure arguments: --prefix=/etc/nginx/ --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-mail_ssl_module --with-file-aio --with-debug --with-cc-opt='-O2 -g -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables' --without-http_uwsgi_module --without-http_scgi_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/simpl-ngx_devel_kit-24202b4 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/agentzh-echo-nginx-module-080c0a1 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/agentzh-set-misc-nginx-module-87d0ab2 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/mikewest-nginx-static-etags-25bfaf9 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/nginx-sticky-module-1.0 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/agentzh-memc-nginx-module-8befc56 --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/agentzh-srcache-nginx-module-8df221e --add-module=/usr/local/hirantha/rpmbuild/BUILD/nginx-1.2.1/contrib/yaoweibin-nginx_upstream_check_module-dfee401

uname -rop
2.6.18-194.el5PAE i686 GNU/Linux

cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

debug logs:
service down, service port still up - http://pastebin.com/S9wJFkmR
service down, service port down- http://pastebin.com/HSjMMs75

Thanks in advance.
Subject Author Posted

nginx-sticky & nginx_http_upstream_check modules not working together

n1xman June 26, 2012 10:14AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

Jérôme Loyet June 26, 2012 10:26AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

n1xman June 26, 2012 04:00PM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

姚伟斌 June 27, 2012 10:50PM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

n1xman June 30, 2012 06:35AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

jjk77 July 20, 2012 10:38AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

姚伟斌 July 22, 2012 02:18AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

n1xman August 09, 2012 04:24AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

姚伟斌 August 09, 2012 08:32AM

Re: nginx-sticky & nginx_http_upstream_check modules not working together

n1xman August 12, 2012 11:53PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 90
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 500 on July 15, 2024
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready