When using proxy_pass, can /etc/hosts be used to resolve domain names instead of “resolver”?

前端 未结 2 847
再見小時候
再見小時候 2020-12-07 21:38

Can /etc/hosts be used instead of resolver when using proxy_pass?

I need to perform a proxy_pass to the same nginx

相关标签:
2条回答
  • 2020-12-07 21:49

    A workaround is to use Nginx map, in order to copy the /etc/hosts content.

    map $wanted_host $wanted_host_ip
    {
        default 127.0.0.1;
        b.dev.local X.X.X.X;
        a.dev.local X.X.X.X;
    }
    
    server
    {
        listen              80;
        server_name         ~^(?P<wanted_port>[0-9]+?)-(?P<wanted_host>.+?)\.HOSTNAME$;
    
        location /
        {
            proxy_pass http://$wanted_host_ip:$wanted_port;
    
        }
    }
    

    This will map wanted_hostto wanted_host_ip , like a resolver.

    0 讨论(0)
  • 2020-12-07 21:51

    You can get around this by installing dnsmasq and setting your resolver to 127.0.0.1. Basically this uses your local DNS as a resolver, but it only resolves what it knows about (among those things is your /etc/hosts) and forwards the rest to your default DNS.

    0 讨论(0)
提交回复
热议问题