Рейтинг:0

Перенаправление прокси на NGINX не работает должным образом

флаг cn

Я настроил nginx как обратный прокси для двух проксируемых серверов. Каждый из них (прокси и прокси-серверы) работает как контейнер в среде докера. Прокси-сервер аппальфа это просто Nginx: альпийский обслуживание статической веб-страницы (только для демонстрации и тестирования). Здесь все работает отлично, потому что все просто. Изображение другого прокси-сервера канборд/канборд. Когда я пытаюсь получить доступ к этой службе через обратный прокси-сервер по адресу https://example.com/kanboard/ Сначала я получаю ожидаемый http-ответ с кодом состояния 302 (найдено). Но заголовок установлен на Расположение: /логин (т.е. указывая на мой обратный прокси), которого не существует. Я ожидаю увидеть поле заголовка Расположение: /kanboard/логин здесь.

Я безуспешно пытался использовать несколько предложенных конфигураций:

  • без proxy_redirect
  • с proxy_redirect
  • с переписать (что здесь не совсем правильно, насколько я понимаю)
  • с возвращаться (что и здесь не подходит, верно?!)

Что я делаю не так?

Мой прокси.conf список обратных прокси-серверов nginx выглядит следующим образом:

сервер {
    слушать 443 ssl http2;
    имя_сервера пример.com;
    server_tokens отключены;
    ssl_certificate /etc/nginx/ssl/example.com.crt;
    ssl_certificate_key /etc/nginx/ssl/example.com.key;
    ssl_session_cache встроенный: 1000 общий: SSL: 10 м;
    ssl_протоколы TLSv1.3;
    ssl_ciphers "HIGH !aNULL !eNULL !EXPORT !CAMELLIA !DES !MD5 !PSK !RC4";
    ssl_prefer_server_ciphers включен;
    журнал_доступа /var/log/nginx/nginx-2443.log;
    proxy_cache_valid любые 1с;

    местоположение / альфа {
        proxy_set_header Хост $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $ схема;
        прокси_пасс http://appalpha/;
    }

    расположение /eval_kanboard {
        proxy_set_header Хост $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $ схема;
        прокси_пароль https://restore_eval_kanboard/;
    }
}

Я ценю вашу помощь.

Ура Томас

флаг us
URL-адрес перенаправления генерируется вашим приложением, поэтому вам нужно посмотреть, как указать базовый URL-адрес для kanboard.
tab269 avatar
флаг cn
Спасибо за предложенное вами исправление. Я установил базовый URL-адрес в приложении «kanboard» на «https://example.com/kanboard/». К сожалению, получаю тот же ответ «302 (Найдено)» с «Расположением: / логин». Разве это не одна из основных функций обратного прокси-сервера, позволяющая перенаправлять/переписывать как запросы, так и ответы?! И должен ли проксируемый сервер заботиться о том, в какой среде он работает?! С точки зрения проксируемого сервера, _относительное_ `Расположение: /логин` _правильно, потому что он не знает об обратном прокси. Но обратный прокси-сервер должен иметь возможность перенаправлять/переписывать в `/kanboard/login`.
флаг us
Такая перезапись не может быть надежно реализована в контексте обратного прокси. Обратный прокси видит только текстовый поток, он не имеет представления о его организации. URL-адреса могут быть в разных форматах в текстовом потоке. Выполнение простого поиска и замены в текстовом потоке может привести к всевозможным плохим побочным эффектам. Поэтому его необходимо настроить в приложении.

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

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