nginx http proxy support for backend server health checks / status monitoring url

Pasi Kärkkäinen pasik at iki.fi
Mon Nov 4 11:58:09 UTC 2013


On Fri, Nov 01, 2013 at 01:58:52PM +0800, Weibin Yao wrote:
> HPPS health check is difficult for the check module, I have added an
> alternative feature for this request. The 'port' option can be
> specifed with different port from the server's original port. For
> example:
> 
> server {
>     server 192.168.1.1:443;
> 
>      check interval=3000 rise=1 fall=3 timeout=2000 type=http port=80;
>      check_http_send "GET / HTTP/1.0\r\n\r\n";
>      check_http_expect_alive http_2xx http_3xx;
> }
> 
> This feature has been exeisted in the develop branch for upstream
> check module: (https://github.com/yaoweibin/nginx_upstream_check_module/tree/development)
> Or tengine: http://tengine.taobao.org/document/http_upstream_check.html
>

Great! Exactly what I need.. 

I'll test it soon.

-- Pasi

 
> 2013/10/31 Ruslan Ermilov <ru at nginx.com>:
> > On Thu, Oct 31, 2013 at 02:26:41PM +0200, Pasi Kärkkäinen wrote:
> >> Hello,
> >>
> >> I'm using nginx as a http proxy / loadbalancer for an application which
> >> which has the following setup on the backend servers:
> >>
> >> - https/403 provides the application at:
> >>       - https://hostname-of-backend/app/
> >>
> >> - status monitoring url is available at:
> >>       - http://hostname-of-backend/foo/server_status
> >>       - https://hostname-of-backend/foo/server_status
> >>
> >> So the status url is available over both http and https, and the status url tells if the application is fully up and running or not.
> >> Actual application is only available over https.
> >>
> >> It's important to decide the backend server availability based on the status url contents/reply,
> >> otherwise you might push traffic to a backend that isn't fully up and running yet,
> >> causing false errors to end users.
> >>
> >> So.. I don't think nginx currently provides proper status monitoring url support for proxy backends ?
> >>
> >> I've found some plugins for this, but they seem to have limitations aswell:
> >>
> >>       - http://wiki.nginx.org/HttpHealthcheckModule
> >>               - https://github.com/cep21/healthcheck_nginx_upstreams
> >>               - only http 1.0 support, no http 1.1 support
> >>               - doesn't seem to be maintained anymore, latest version 2+ years old
> >>
> >>       - https://github.com/yaoweibin/nginx_upstream_check_module
> >>               - only supports http backends, so health checks must be over http aswell, not over https
> >>               - if actual app is on 443/https, cannot configure separate port 80 for health checks over http
> >>               - only "ssl" health check possible for https backends
> >>
> >>
> >> Any suggestions? Or should I start hacking and improving the existing plugins..
> >> Thanks!
> >
> > This functionality is currently available in our commercial version:
> > http://nginx.com/products/
> >
> > The documentation is here:
> > http://nginx.org/en/docs/http/ngx_http_upstream_module.html#health_check
> >
> > _______________________________________________
> > nginx mailing list
> > nginx at nginx.org
> > http://mailman.nginx.org/mailman/listinfo/nginx
> 
> 
> 
> -- 
> Weibin Yao
> Developer @ Server Platform Team of Taobao
> 
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx



More information about the nginx mailing list