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

Может ли Nginx прокси на виртуальный хост Nginx?

У меня есть апстрим в своем блоке http:

upstream backend.example.com {
    server 127.0.0.1:443;
}

И внутри серверного блока внешнего интерфейса:

location ~* ^/special {
    proxy_pass https://backend.example.com;
    include /etc/nginx/conf.d/proxy.conf;
}

Кажется, это нормально работает, когда backend.example размещен на Apache или находится в другом окне. Когда внешний интерфейс и серверная часть являются «виртуальными хостами», которые прослушивают один и тот же адрес и порт, Nginx возвращает ошибку 502 Bad Gateway (неправильная конфигурация).

Способен ли Nginx проксировать самому себе и определять место назначения на основе имени сервера?

Из того, что я вижу, вам следует попробовать переименовать свой бэкэнд в апстрим, давайте попробуем что-то вроде этого.

upstream backend {
   server 127.0.0.1:443;
}

Теперь, когда вы пытаетесь выполнить proxypass, давайте изменим его на новое имя восходящего потока, а затем установим другой заголовок.

location ~* ^/special {
    proxy_pass https://backend;
    proxy_set_header Host backend.example.com
    include /etc/nginx/conf.d/proxy.conf;
}