Деплой сайта на flask
У меня есть приложение на flask. А вернее, их два. Одно - это сайт с визуалом, другое - написанное по технологии fastAPI без визуала, все функции (а именно парсинг и обновление бд) как бы "под капотом". Есть выделенный vps с ОС windows (там свои заморочки, поэтому так). Хочу, чтобы фласк приложение было в общем доступе и никак не могу разобраться с последовательностью действий для этого
Ответы (1 шт):
Итак, т.к не указаны названия программного обеспечения, кроме ос виндовс, то пишу максимально обобщенно:
- при необходимости направляем домен на vps (если есть, если нет, то для общего доступа используйте ip адрес vps) , у провайдера узнаём ns-значения, если у провайдера нет dns-сервера, используем сторонний, например яндекс.коннект или поднимаем свой и тогда вносим ip адрес в "А" запись у регистратора домена
- определяемся с программой (далее сервер), которая будет перенаправлять трафик из сети в приложение фласк
- настраиваем сервер, на домен (или просто ip) чтобы он по запросам на 80 (http) или 443(https) порт открывал сайт на фласке, возможно понадобится несколько серверов - для статичных файлов и динамичных ( например wsgi модули или отдельное приложение)
- при необходимости настраиваем контейнеризацию ( докер к примеру) и /или виртуальное окружение ( venv activate)
- важно проверить что пользователь от чьего имени будет запускаться сервер , имеет нужные права ( обычно на чтение и запуск исполняемых файлов, и запись файлов логгирования)
- если нужен ssl, то есть бесплатный certbot, или может установить свои / купить в любом другом месте
Как проверять:
- настройку домена, используем whois сервисы - если видете правильные значения ns или A, то все ок
- настройка сервера, локально пытаемся открыть сайт в браузере или делаем запрос через curl ( или аналоги)
- если всё настроили правильно, то в браузере на любом устройстве будет открываться сайт на фласке по запросу домена или ip
Бывает, что хостеры любят в своих настройках дополнительно собирать сведения об доменах, какие вы хотите развернуть у них - в вики хостера об этом написано, крайний случай - тех.поддержка.