Рейтинг:0

Неожиданное перенаправление, если вышестоящий сервер перенаправляется в nginx proxy_pass с указанным URI

флаг cn

Это мой блок обратного прокси-сервера

сервер {
    слушать 80;
    имя_сервера test.com;

    место расположения / {
        прокси_пароль http://127.0.0.1:8080;
        proxy_set_header HOST $хост;
    }
}

Я создаю все конечные точки на моем восходящем сервере без конечной косой черты, перенаправляя все конечные точки с косой чертой на конечную точку без косой черты на моем восходящем сервере, test.com/foo/ перенаправит на test.com/foo, все нормально, пока не хочу прокси test.com к http://127.0.0.1:8080/приложение/, вот серверный блок

сервер {
    слушать 80;
    имя_сервера test.com;

    место расположения / {
        прокси_пасс http://127.0.0.1:8080/приложение/;
        proxy_set_header HOST $хост;
    }
}

И вот что произошло:

  1. test.com перенаправить на test.com/приложение, ожидать test.com
  2. test.com/foo все так же, как и ожидалось
  3. test.com/foo/ перенаправить на test.com/app/foo, ожидать test.com/foo

Не могу найти решение этой проблемы, помогите?

Michael Hampton avatar
флаг cz
Сообщите приложению, что вы изменили URL-адрес.
billyzaelani avatar
флаг cn
Может решение в серверном блоке? нет в приложении
Michael Hampton avatar
флаг cz
Вам придется исправить приложение.
Richard Smith avatar
флаг jp
Используйте curl -I http://test.com/foo/, чтобы определить точное значение заголовка ответа Location, и используйте proxy_redirect, чтобы изменить его.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.