syschel
@syschel
freelance/python/django/backend

Один сервер VPS и несколько сайтов каждый в своём docker контейнере, как настроить глобальный nginx?

На сервере крутится несколько сайтов, больше 10. Каждый надо спрятать в свой докер контейнер. Как при этом правильно настроить nginx конфиги (в глобальном nginx который смотрит во вне, а не внутри каждого контейнера, чтобы слушало именно домены и отдавало данные из нужных контейнеров)? Особенно если будут появляться новые сайты/домены.

Сайты на python/django и сейчас они связываются в nginx через socket

upstream project1-uwsgi {
    server unix:///.../project1/uwsgi.sock;
}
server {
    listen      80;
    server_name project1.ru;
    location / {
        uwsgi_pass project1-uwsgi;
        include uwsgi_params;
    }
}

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

Спасибо за ответы.
  • Вопрос задан
  • 291 просмотр
Решения вопроса 1
yarkov
@yarkov
Помог ответ? Отметь решением.
Посмотрите на Traefik. Самое то под вашу задачу.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@maksam07
Когда я пытался подобное реализовать, то докер постучал мне по лбу и сказал: ай-ай-ай, не надо так, я не умею такое. Времена может быть и изменились, но прошлые конфиги я пока что не менял. А то есть - хостмашина теперь без нгинкс, изначально веб порты ни кто не прослушивает, но потом в игру вступает докер с нгинкс, который слушает 2 порта (80,443), и при помощи объединения в одну сеть можно контейнеры связывать между собой. Единственное, у меня выходит 2 нгинкса - 1 общий и 1 в каждом проекте, не знаю, правильно ли это, но по другому не получалось нормально настроить.

По теме: https://hub.docker.com/r/nginxproxy/nginx-proxy
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы