nginx http proxy support for backend server health checks / status monitoring url
Ruslan Ermilov
ru at nginx.com
Thu Oct 31 12:41:20 UTC 2013
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
More information about the nginx
mailing list