Nginx as reverse proxy for many domains (many ips in proxypass?)

Hi,
I’m trying to set up nginx as a reverse proxy for several apache2
server.
Nginx server should act as a cache / proxy for any URL that you send -
so
some sort of global VirtualHost. There is no problem.
But I do not know how to configure nginx to not only one IP address as
the
ProxyPass, but to automatically use the IP site (Apache2 web server -
but
it is different for each domain).

It is possible to do this somehow?

Thanks so much for the help.

Michal

I’m sure there are a few different ways to accomplish this, personally
I’m working on a dynamic method to perform this with a mysql backend.
For a more simplistic method, maybe try using a map hash for the
backend_server variable that is matched against the incoming
$http_host:

map_hash_bucket_size 64;

map $http_host $backend_server {
    hostnames;

    default

backend-apache1.example.com;
my-frontend-alias.example.com
vip-super-secret-backend.example.com
my-other-alias.example5.com
vip-other-secret-backend.example2.com
}

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;

server 80 {

location / {

        proxy_pass  http://$backend_server

}

}

Just an example, I’m sure I’m missing something above… :slight_smile:

Posted at Nginx Forum:

Im curious is it more efficient to use map or multiple server blocks?

Oops, that ‘server 80 {’ line above is completely incorrect :slight_smile: Take
note…

Posted at Nginx Forum: