Using HttpMapModule with proxy_pass got 502

Maxim Dounin mdounin at mdounin.ru
Wed Jan 23 14:21:13 UTC 2013


Hello!

On Wed, Jan 23, 2013 at 06:16:52AM -0500, amozz wrote:

> Hi everyone,
> 
> My project needs to route http request to different host with different
> domain name. I deployed HttpMapModule and proxy_pass, and the related
> nginx.conf segment is following:
> 
> http {
>    map $http_host $backend_servers {
>         app.example.com       localdomain1; #if changed to ip, it's ok
>         default                       localdomain2;
>    }
>    
>    server {
>         listen              80;
>         server_name    localhost;
>         location /{
>              proxy_pass http://$backend_servers;
>         }
>    .......
>    }
> 
> When I send the requet uri as http://app.example.com, the result is 502
> error. But if I changed the maping value as IP address not domain name, it
> worked with no problem. And if I change the proxy_pass item directly to
> http://localdomain1, it also worked as normal.
> 
> Does the proxy_pass + http_map_module not refer to DNS look? or is there any
> other point wrong in the nginx.conf ?  
> 
> Thanks for any suggestion.

For dynamic name resolution of upstream servers to work, you have 
to configure resolver, see http://nginx.org/r/resolver.

You may also start looking into error log if something goes wrong.  
In this case it should have "no resolver defined" errors logged.

-- 
Maxim Dounin
http://nginx.com/support.html



More information about the nginx mailing list