resolver directive doesn't fallback to the system DNS resolver

Francis Daly francis at daoine.org
Thu Jan 8 00:15:20 UTC 2015


On Wed, Jan 07, 2015 at 05:37:22PM -0600, Kunal Pariani wrote:

Hi there,

> http { 
> server { 
> listen 443; 
> location ^~ /zss 
> { 
> proxy_pass https://www.example.com$request_uri; 
> } 
> } 
> } 

Ok, I see the "no resolver defined to resolve www.example.com" message
when I make a request that matches that location.

> Although i don't want to use this resolver directive here and instead just want nginx to use the system DNS resolver (from /etc/resolv.conf). Is there a way to achieve this ? 
Unless something has changed recently that I haven't seen, my understanding is:

if the hostname is known at start time, nginx will use the system resolver
to resolve it, and will use the result forever

otherwise, you must use a "resolver" directive to tell nginx which name
servers to use for runtime resolution.

http://nginx.org/r/resolver

There is no default for "resolver"; if you want one to be used, you must
configure it explicitly. So I think the answer to your question is "no".

(You could probably come up with a way to read /etc/resolv.conf when it
changes, and update the nginx config and reload it; but that's a "dynamic
reconfiguration" problem, not an "nginx dynamic reconfiguration" problem.)

	f
-- 
Francis Daly        francis at daoine.org



More information about the nginx mailing list