Как на рег ру разместить несколько фласк приложений на одном сайте?

Рейтинг: 0Ответов: 1Опубликовано: 22.04.2023

Есть 2 бека на фласке, их надо положить на рег ру, чтобы можно было делать потом запросы к ним с веб сайтов. Окружение фласка установил как у них в документации указано, там же написано, что питоновские файлы надо класть в корневой каталог сайта, все бы хоорошо, но у меня 2 таких приложения, как мне их правильно расположить на сайте, чтобы одно другое не перекрывало?

Ответы

▲ 1

По каждой составляющей можно нагуглить множество статей с примерами, здесь я опишу высокоуровневую картинку для цельного понимания происходящего:

1. Настройка кода

Настраиваете окружение для бэкэнда отдельных сайтов. Не важно, Python + Flask/Django или Node.js или что ещё, не особо важно, где оно в системе хранится (часто используется путь вида /var/www/my-website).

По-хорошему, для Питона можно использовать изолированные окружения через venv (virtual environment), или вообще Docker для всего, но если число сайтов редко меняется или опыта/компетенций мало, то можно обойтись и общим системным окружением.

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

2. Запуск кода

Автоматизировать запуск серверных приложений через systemctl или Docker-Compose, что позволит автоматически их перезапускать в случае падения из-за ошибок, или вручную для выкатки новых версий. Приложениям в конфигах проставляем порты, удобно использовать единообразные вроде 80xx.

3. Роутинг

Установить и настроить NginX для перенаправления запросов по разным доменам к портам. Чтобы условный my-site-1.ru:80/443 отправлялся на порт 8001 одного приложения, а my-site-2.ru:80/443 на порт 8002 другого, и т.п. Можно и даже удобно использовать разные конфиги, что позволит проще управлять сайтами, в каждом независимо прописывать отдельные правила, чаще всего для обработки статического контента сайта (JS, CSS, медиа).

В документации Фласка есть базовый пример настройки NginX.