Using URL instead of IP

Maxim Dounin mdounin at
Tue Nov 6 17:13:52 UTC 2018


On Tue, Nov 06, 2018 at 12:44:47AM -0500, swati wrote:

> Hi,
> I intend to use nginx as load balancer for routing traffic to an application
> running on two separate Openshift (kubernetes) clusters.
> The app urls are -> and
> When I curl to these individually I get required page.
> However, it seems, nginx resolves it into IP instead of treating it as mere
> destinations.
> See below my config.
> Since the apps are running on Openshift, they do not have a specific
> (public) IP address.
> Ping for (and for that matter will
> give the IP of the machine where DNS service is running for that Openshift
> cluster.
> Is there a way to configure nginx to route the requests to the URLs without
> trying to resolve it into IP addresses?
> Thanks
> Swati
> ---
> upstream lbtest { 
> 	server ; 
> 	server ; 
> }
> server {
>     listen 9087;
>     location / {
>         proxy_set_header Host $host;
> 	proxy_pass http://lbtest;
>     }
> }
> ---

With nginx-plus commercial version, you can use "server ... 
resolve", which is specially designed for such use cases.  See 
here for details:

With vanilla nginx, you can instruct nginx to always re-resolve 
names by using variables:

    set $backend;
    proxy_pass $backend;

You won't be able to use an upstream block with multiple names 
though.  See here for details:

Note that in both cases you'll have to define a resolver to use, 
see here:

Maxim Dounin

More information about the nginx mailing list