У меня есть апстрим в своем блоке 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;
}