Обратному прокси-серверу Nginx требуется внутренний порт для работы при перенаправлении трафика на хост-машину Docker

Обратному прокси-серверу Nginx требуется внутренний порт для работы при перенаправлении трафика на хост-машину Docker

Я использовал хост-машину Linux с несколькими контейнерами Docker, работающими с одним из них в качествеМенеджер прокси-серверов Nginx(далее: NPM), который представляет собой просто Nginx с удобным пользовательским интерфейсом.

NPM открывает порты 80 и 443 и перенаправляет трафик в каждый контейнер в соответствии с указанными правилами прокси, обычная старая конфигурация обратного прокси. Все контейнеры должны подключаться к мостовой сети Docker, чтобы NPM мог легко к ним добраться.

Все это работает. Теперь у меня есть новый сервис, который также нужно выставить с помощью NPM, разница в том, что сервис работает не в контейнере, а на хост-машине, и он доступен по порту 3711.

Проведя исследование, я пришел к такому предложению:

extra_hosts:
    - "host.docker.internal:host-gateway"

Добавляя это в файл docker-compose в службе NPM, вы позволяете ему достигать любого порта на хост-машине, и фактически, выполняя ping из контейнера NPM, host.docker.internalя получил ответ. Проблема в том, что после настройки правила прокси, как я всегда делаю:

введите описание изображения здесь

Если я попытаюсь подключиться к сервису из Интернета по адресу ci-server.domain.com, я получу ошибку 502. НО если я сделаю ci-server.domain.com:3711, я смогу подключиться!

Зачем мне нужно добавлять внутренний порт к домену?Все мои остальные службы, работающие в контейнерах, отвечают на порты 80/443 и перенаправляются внутрь на свои порты.

Связанный контент