Рейтинг:0

Автоматические перенаправления обратного прокси-сервера Nginx идут на неправильный порт

флаг us

Я пытаюсь настроить обратный прокси-сервер для контейнера докеров, используя nginx.

Докер-контейнер доступен и работает на порту 8000.

Я хотел бы иметь доступ к контейнеру по адресу mydomain.com:80/mycontainer.

Обратному прокси-серверу, похоже, удается связаться с контейнером, но когда контейнер запрашивает перенаправление на свою страницу входа, nginx пытается загрузить страницу входа на порт 80 вместо 8000, что терпит неудачу.

это моя конфигурация nginx на данный момент:

    вышестоящий докер-контейнер {
        сервер 127.0.0.1:8000;
    }

    сервер {
        слушать 80;

        расположение /мойконтейнер {
            прокси_перенаправление выключено;
            proxy_set_header Хост $http_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-Host $server_name;
            proxy_set_header Обновить $http_upgrade;
            proxy_set_header Соединение "обновление";
            proxy_pass http://docker-контейнер;

        }

    }

Вот что я получаю, когда бегу wget -S 127.0.0.1/мойконтейнер:

wget -S 127.0.0.1/мойконтейнер
--2021-08-29 20:30:12-- http://127.0.0.1/mycontainer
Подключение к 127.0.0.1:80... подключено.
HTTP-запрос отправлен, ожидается ответ...
  HTTP/1.1 302 Найдено
  Сервер: nginx/1.18.0 (Ubuntu)
  Дата: воскресенье, 29 августа 2021 г., 20:30:12 по Гринвичу
  Content-Type: текстовый/обычный; кодировка = utf-8
  Длина содержимого: 28
  Соединение: Keep-alive
  Язык содержания: en
  Параметры X-Frame: SAMEORIGIN
  X-Параметры загрузки: noopen
  X-Content-Type-Options: nosniff
  Referrer-Policy: происхождение-при-перекрестном происхождении
  X-XSS-защита: 1; режим = блок
  Расположение: /логин
  Варьировать: принять
  Set-Cookie: какой-то файл cookie
Расположение: /login [следующий]
--2021-08-29 20:30:12-- http://127.0.0.1/login <--- ВОТ ПРОБЛЕМА. Должно быть 127.0.0.1:8000/логин
Повторное использование существующего подключения к 127.0.0.1:80.
HTTP-запрос отправлен, ожидается ответ...
  HTTP/1.1 404 не найден
  Сервер: nginx/1.18.0 (Ubuntu)
  Дата: воскресенье, 29 августа 2021 г., 20:30:12 по Гринвичу
  Тип содержимого: текст/html
  Длина содержимого: 162
  Соединение: Keep-alive
2021-08-29 20:30:12 ОШИБКА 404: не найдено.

Я ни в коем случае не профессионал в этом, поэтому я уверен, что есть много ошибок.

Как я могу заставить автоматические перенаправления указывать на правильный порт (8000), а не на порт 80?

Michael Hampton avatar
флаг cz
Это перенаправление происходит из вашего приложения, а не из nginx.
флаг us
Вам необходимо установить корневой URL-адрес вашего приложения в настройках приложения.

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

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