Обратный прокси-сервер Nginx к внешнему URL, на котором есть перенаправления
Днем господа,
Моя текущая настройка - один сайт, давайте назовем его http://production.com/, который обслуживается Nginx на порту 80 как статический кеш, а Apache в фоновом режиме на порте 8080 localhost, ничего особенного на самом деле, и это работает очень хорошо.
Сейчас я пытаюсь сделать так, чтобы URL http://production.com/foobar включал данные с внешнего URL, который мы назовем http://internal.com/.
Проблема, с которой я сталкиваюсь, заключается в том, что если я перехожу на http://internal.com/ меня автоматически перенаправляют на http://www.internal.com/forum/forum.php потому что это форум vBulletin, на котором есть свои собственные внутренние перенаправления и то, что не основано на переменной URL сайта. Конечно, то же самое происходит, если я пытаюсь прокси-сервер через Nginx, я просто "перенаправлен" на URL../forum/forum.php.
Итак, как мне решить эту проблему? Есть ли способ сделать это перенаправление как-то невидимым и не позволить Nginx как-то следовать за ним в адресной строке? В основном iframe без использования фактического iframe.:-)
Это мой фрагмент кода Nginx, с которым я сейчас пытаюсь работать:
location /foobar {
proxy_pass http://internal.com/;
proxy_redirect off;
proxy_set_header Host $host;
}
Идеи? Заранее спасибо.
1 ответ
Я понял, что в этом случае у вас есть два разных варианта.
Вы либо используете
ngx.lua
Модуль, как указал Андрей Михальцов, и изменение прокси-сервера для любого ответа HTTP, который вы получите, это, конечно, может стать настоящим кошмаром.Вы вносите некоторые изменения в любое приложение, которое вы "пересылаете", в нашем случае это был форум.
В нашем случае мы выбрали номер 2 и поместили их в один домен и внесли некоторые изменения в форум.