<div dir="ltr"><span style="font-size:12.8px">Hello,</span><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">(Short version: what could cause nginx to try to resolve a name used as the upstream backend configured name? Long version follows in the body of the message).</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">I have a weird problem, which might be something simple I am missing, I searched the archives and read the documentation twice and still I am missing something.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">In one site / system I have the following simple conf:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">http {</div><div style="font-size:12.8px">...</div><div style="font-size:12.8px"><div>    upstream app1-backend {</div><div>        sticky name=app1cookie hash=md5 secure httponly;</div><div>        server 192.168.0.4;</div><div>        server 192.168.1.4;</div><div>    }</div></div><div style="font-size:12.8px">...</div><div style="font-size:12.8px">}</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">server {</div><div style="font-size:12.8px"> ...</div><div style="font-size:12.8px"> location / {</div><div style="font-size:12.8px">  ...</div><div style="font-size:12.8px">  proxy_pass <a href="http://app1-backend/" target="_blank">http://app1-backend</a>;<br></div><div style="font-size:12.8px">  ...</div><div style="font-size:12.8px"> }</div><div style="font-size:12.8px">...</div><div style="font-size:12.8px">}</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">And it works perfectly. In a second server I have almost the same conf:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>http {</div><div>...</div><div><div>    upstream app1-backend {</div><div>        sticky name=app1cookie hash=md5 secure httponly;</div><div>        server 192.168.1.4;</div><div>        server 192.168.0.4;</div><div>    }</div></div><div>...</div><div>}</div><div><br></div><div>server {</div><div> ...</div><div> location / {</div><div>  ...</div><div>  proxy_pass <a href="http://app1-backend/" target="_blank">http://app1-backend</a>;<br></div><div>  ...</div><div> }</div><div>...</div><div>}</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">They are two individual nginx reverse proxies in two different data centers.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">The first nginx/site works great, but on the second I get the following error:</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">2016/08/03 18:09:56 [error] 94482#100729: *34 no resolver defined to resolve app1-backend, client: 192.168.1.20, server:<a href="http://app1.mydomain.com/" target="_blank">app1.mydomain.com</a>, request: "GET / HTTP/1.1"<br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">So it looks like, for some weird reason, nginx on second site is trying to resolve app1-backend as a host. Proof is, if I add it to /etc/hosts it works. But obviously this is not what I want, the proxy_pass is pointed to an upstream backend not a host.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">So, first site works fine, second wants to resolve app1-backend like if it was not an upstream block. Both sites should have the very same config, I have compared with diff -u but I still can't figure out what's going wrong here.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">My guess this is a basic mistake but I can't see.</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Any obvious diagnostics here?</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Thank you very much.</div></div>