
Мой клиент требует объединить все свои предприятия в один зонт, не перемещая их из исходных местоположений. Например, у него уже есть сайт, работающий как realestate.com и movers.com, и теперь он хочет объединить их под corporate.com так, чтобы ссылка corporate.com/real сопоставлялась с real.corporate.com и отображала веб-сайт, размещенный на realestate.com. Это не перенаправление, поэтому в строке URL будет отображаться real.corporate.com для realestate.com, и все ссылки также будут относительными, например realestate.com/index.html будет отображаться как real.corporate.com/index.html. realestate.com/portfolio/houses/pictures станет real.corporate.com/portfolio/houses/pictures. Я пробовал использовать proxy_pass, но это меняет URL. В настоящее время я тестирую его с одним сайтом, и ниже приведен мой блок сервера
server{
listen 80;
location / {
proxy_pass http://www.realestate.com/;
sub_filter_once off;
proxy_redirect off;
proxy_set_header Host $host;
}
}
Эта настройка перенаправляет меня напрямую на realestate.com, а URL-адрес также меняется в браузере. Изменение местоположения на location /real
приводит к ошибке 404.
Пожалуйста помоги
решение1
Ваша конфигурация не делает никаких перенаправлений. Перенаправление отправляется вышестоящим веб-сервером по адресу realestate.com
.
Приложение отправляет перенаправление на realestate.com
, поскольку запрос не отправляется на домен, настроенный в приложении.
Вы можете изменить это, используя
proxy_set_header Host www.realestate.com;
Эта настройка отправляет прокси-запрос на восходящий поток с Host: www.realestate.com
заголовком, который позволяет ему попасть на нужный виртуальный сервер на восходящем сервере.
Однако у вас все равно могут возникнуть проблемы со ссылками, сгенерированными www.realestate.com
.
Кроме того, если www.realestate.com
отправляется HTTP-перенаправление, вам необходимо заменить содержимое перенаправления директивой proxy_redirect default;
.