Як повернути проксі-сервер у різні місця залежно від субдомену в Nginx?


15

У мене є кілька субдоменів, усі вказують на одну машину та одну IP-адресу. На цій машині я хочу, щоб nginx виступав як зворотний проксі, і залежно від того, який піддомен використовувався для доступу до машини, я хочу, щоб він повернув проксі на інший сервер. Усі приклади, якими я бачив використання nginx як зворотного використання проксі location, але, як я розумію, він працює лише для шляху, а не для різних субдоменів. Як я можу досягти того, що хочу?


2
Це може бути трохи занадто широким. Чи можете ви опублікувати більше про те, що ви вже пробували?
Буде

Відповіді:


28

Якщо я повністю не перечитав ваше запитання: Ви просто налаштуєте серверні блоки для кожного піддомену та визначите правильний зворотний проксі для кореня цього піддомену, тобто щось уздовж рядків:

 server {
        server_name subdomain1.example.com;
        location / {
            proxy_pass       http://hostname1:port1;
        }
 }
 server {
        server_name subdomain2.example.com;
        location / {
            proxy_pass       http://hostname2:port2;
        }
 }

Вибачте за несвоєчасну відповідь, але в мене це працює!
markasoftware

3

Приблизно так само.

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

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

1
Це було не саме те, що я шукав. Дивіться прийняту відповідь
markasoftware

1
Жування та перетравлення - це тягар, що вимагає, а не мій.
drookie
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.