@gebu5

Как можно использовать одни порты для Nginx и Docker?

У меня на сервере запущены несколько сайтов без докера через nginx, текущий проект пытаюсь загрузить с помощью докера и при сборке получаю ошибку "0.0.0.0:80: bind: address already in use". Порты 443 и 80 заняты nginx, отключить nginx не могу. Изменение записи в docker-compose.yml таким образом - ports: 800:80 решает эту проблему, но тогда доступ на сайт идет не по домену, а domain.com:800. Перерыл интернет, у всех все заканчивается отрубанием nginx, надеюсь у кого нибудь есть идеи.
  • Вопрос задан
  • 334 просмотра
Пригласить эксперта
Ответы на вопрос 4
paran0id
@paran0id
Умный, но ленивый
Перевесить докер на другой порт, запроксировать доступ к нему через nginx.
Ответ написан
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Настройте nginx, чтобы он слушал не все интерфейсы, а только внешний на сервере. Docker имеет свою подсеть, он не доберется до 80 порта на внешнем интерфейсе.
Если доберется-запретите ему и проксируйте запросы в докер через nginx
Ответ написан
Комментировать
SagePtr
@SagePtr
Еда - это святое
Через proxy_pass в nginx пробросить на нужный порт внутри контейнера, таким образом, заодно можно переложить на nginx и прочую работу - по логгированию, получению сертификатов и т.п., не реализуя это отдельно внутри контейнера.
Ответ написан
Комментировать
@Drno
Nginx proxy_pass
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы