Как перевести прокси в разные места в зависимости от субдомена в Nginx?

13

У меня есть несколько поддоменов, все указывают на одну машину и один IP-адрес. На этой машине я хочу, чтобы nginx действовал в качестве обратного прокси-сервера, и в зависимости от того, какой поддомен использовался для доступа к машине, я хочу, чтобы он перенаправлял прокси на другой сервер. Все примеры, которые я видел, использовали nginx в качестве обратного прокси-сервера location, но, насколько я понимаю, это работает только для пути, а не для разных поддоменов. Как я могу добиться того, чего хочу?

markasoftware
источник
2
Это может быть слишком широким. Можете ли вы написать больше о том, что вы уже пробовали?
Будет

Ответы:

27

Если я полностью не понял ваш вопрос: вы просто устанавливаете серверные блоки для каждого субдомена и определяете правильный обратный прокси для корня этого субдомена, то есть что-то вроде:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }
HBruijn
источник
Извините за поздний ответ, но у меня все получилось!
markasoftware
3

Примерно так же.

location /foo {
    rewrite ^/foo(.+)$ /$1 break;
    proxy_pass http://foo;
}

location /bar {
    rewrite ^/bar(.+)$ /$1 break;
    proxy_pass http://bar;
}
drookie
источник
1
Это было не совсем то, что я искал. Смотрите принятый ответ
markasoftware
1
Жевание и переваривание - бремя, а не мое.
Друки