Назад | Перейти на главную страницу

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

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

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

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

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

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

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