Развертывание нескольких приложений Python на одном сервере Compute Engine / Docker - PullRequest
0 голосов
/ 08 июня 2018

Я - разработчик PHP (10 лет), в настоящее время изучаю Python (2 месяца).

В настоящее время у меня есть сервер на Compute Engine с примерно 10 доменами, размещенными на 10 различных веб-сайтах / приложениях.Каждое приложение имеет такие требования, как SSL, кеширование, подключение к базе данных и т. Д.

Я создаю несколько приложений на Python (Django и Flask) и застрял на их развертывании.Когда я запускаю приложение Django, используя

python manage.py runserver 0.0.0.0:80 

, терминал занят, и я не могу запустить другое приложение на другом порту.Та же проблема для Gunicorn.

Каждое приложение Python будет иметь подключение к базе данных, SSL, кэш и т. Д.

В моем приложении PHP я использую Nginx для указания папки, LetsEncrypt для добавления SSLна сайт, и я могу развернуть приложения на одном сервере, используя разные папки для каждого приложения.Я также могу перезапустить сервер от администратора Compute Engine (что мне нужно сделать), и после запуска сервера все веб-сайты становятся доступными для конечных пользователей.

Я хотел бы понять, как сделать то же самое с Python.Поскольку эти проекты не оплачиваются / приносят доход, я не могу разместить их на своих собственных серверах из-за стоимости.

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

Заранее благодарю за любую помощь.

1 Ответ

0 голосов
/ 08 июня 2018

Если Gunicorn не является вашим жестким требованием, вы можете попробовать uWSGI в режиме Emperor .

Простыми словами: Emperor отслеживает некоторые источники (например, каталог) и ищет файлы конфигурации Vassals (ваши приложения), чтобы запускать их и управлять ими.Таким образом, с небольшими усилиями вы можете создать конфигурацию для запуска всех ваших приложений с помощью одного процесса (который вызовет другой процесс в фоновом режиме, но, как я понимаю, это не проблема).

Но вы должны рассмотреть возможность развертывания этих приложений в разных контейнерах, так как в этом подходе отсутствует точка контейнеризации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...