Добрый день, господа!
Моя текущая установка - это один сайт, позвольте назвать это 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;
}
Идеи? Заранее спасибо.
Я понял, что в этом случае у вас есть два разных варианта.
Вы либо используете ngx.lua
модуль, как указал Андрей Михальцов, и изменить прокси для любого ответа HTTP, который вы получите, это, конечно, может быть настоящим кошмаром.
Вы вносите некоторые изменения в любое приложение, в которое «перенаправляете», в нашем случае это был форум.
В нашем случае мы выбрали номер 2, поместили их в один домен и внесли некоторые изменения в форум.