Обратный прокси-сервер 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 ответ

Я понял, что в этом случае у вас есть два разных варианта.

  1. Вы либо используете ngx.lua Модуль, как указал Андрей Михальцов, и изменение прокси-сервера для любого ответа HTTP, который вы получите, это, конечно, может стать настоящим кошмаром.

  2. Вы вносите некоторые изменения в любое приложение, которое вы "пересылаете", в нашем случае это был форум.

В нашем случае мы выбрали номер 2 и поместили их в один домен и внесли некоторые изменения в форум.

Другие вопросы по тегам