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

Pasi Kärkkäinen pasik at iki.fi
Thu Oct 31 12:26:41 UTC 2013


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!

-- Pasi



More information about the nginx mailing list