Resolver not working as expected

Steve Wilson lists-nginx at swsystem.co.uk
Tue Aug 28 12:32:35 UTC 2018


On 27/08/2018 14:30, Maxim Dounin wrote:
> Hello!
> 
> On Mon, Aug 27, 2018 at 06:56:01PM +0530, Sharan J wrote:
> 
>> Hi,
>> 
>> Sample conf:
>> 
>>     http{
>>     resolver x.x.x.x;
>>     server {
>>     server_name _;
>>     location / {
>>     proxy_pass http://somedomain.com;
>>     }
>>     }
>> 
>> I have nameservers configured in my resolv.conf. But, somedomain.com 
>> will
>> be configured in x.x.x.x DNS server only. So, I have specified 
>> resolver in
>> my nginx.conf. However, during startup/reload I get "host not found in
>> upstream error". Why nginx is not considering resolver conf and 
>> searches
>> only in the nameservers configured in resolv.conf?
> 
> Names as written in the configuration are resolved while parsing
> the configuration using the system resolver.  DNS servers defined
> by the "resolver" directive are only used for dynamic / run-time
> name resolution - for example, when variables are used in the
> "proxy_pass" directive.

I didn't want to hijack this thread but my question seems relevant.

Is there a way to prevent dns resolution on a proxy_pass or upstream 
block during config parsing, or at least make it non-fatal?

background/reason: I've a backend server with dynamic IP which doesn't 
always resolve. It will resolve when it's expected to be working but may 
not be available at config parsing time.


More information about the nginx mailing list