- ngx_http_upstream_dynamic_module
- This module provides the functionality to resolve domain names into IP addresses in an upstream at run-time.
- It comes from Taobao Tengine @ http://tengine.taobao.org
\#for nginx 1.10 or lower, use the patch http-upstream-dynamic.patch
\#for nginx 1.14 or higher, use the patch http-upstream-dynamic.patch-1.14.0+
patch -p0 < /path/to/nginx-http-upstream-dynamic-module/http-upstream-dynamic.patch
./configure --add-module=/path/to/nginx-http-upstream-dynamic-module
upstream backend {
dynamic_resolve fallback=stale fail_timeout=30s;
server a.com;
server b.com;
}
server {
...
proxy_pass http://backend;
}
Syntax: dynamic_resolve [fallback=stale|next|shutdown] [fail_timeout=time]
Default: -
Context: upstream
Enable dynamic DNS resolving functionality in an upstream.
The 'fallback' parameter specifies what action to take if a domain name can not be resolved into an IP address:
- stale, use the original IP addresses resolved when tengine starts.
- next, go to next availiable server in the upstream.
- shutdown, finalize current request.
The 'fail_timeout' parameter specifies how long time tengine considers the DNS server as unavailiable if a DNS query fails for a server in the upstream. In this period of time, all requests comming will follow what 'fallback' specifies.
- It is a tengine module from https://github.com/alibaba/tengine/blob/master/src/http/modules/ngx_http_upstream_dynamic_module.c and made to work with nginx 1.9
- It follows original tengine license.