Начну из далека: есть стандартный хостинг (apache, php) - для работы сайта требуется залить в корень index.php - при обращении к сайту, сервак будет обращаться к этому файлу и отдавать его содержимое. Вот так обстоят дела с php.
На сколько я понял в питоне "всё" иначе:
Никакой программы типа apache не нужен - пакет-сервак встроен в питон. Проблему увидел ещё во времена написания бота: дело в том, что чтобы запустить "прослушивание порта" - нужно запустить процесс из консоли, что естественно является основой нестабильности, потому-что бесперебойность процесса никто не контролирует и не перезапускает в случае завершения... Я так понимаю, для нормально работы сайта на питоне, нужно писать какую то низкоуровневую утилиту (не знаю на чём), которая будет мониторить, запущен ли питон-сервер и в случае завершения - запускать.
Господа ветераны, прошу помощи в решении столь тривиальной задачи. Или без танцев никак?
Ты слышал про php-fpm?
Тогда расскажу так. Типичное веб приложение работает так: 1. Есть реверс прокси. Его задача терминировать клиентов, обслуживать их тормоза, разбираться когда клиентов много и т.п. Это nginx/haproxy/traefik 2. Есть сервер раздачи статики. Он умеет хорошо раздавать файлы которые не меняются. Это может быть внешний CDN или тупо тот же nginx, что в пункте 1 3. Есть веб-сервер приложения. Тот сервер, который запускает код. Он обычно плохо работает как 1 и 2, но умеет дёргать твой код. Это может быть apache httpd, apache tomcat, php-fpm, gunicorn, uwsgi, uvicorn и т.п. Они отличаются тем, какой код они умеют запускать, как с этим кодом общаются и т.п. 4. Системный менеджер сервисов. Та штука, которая стартует любые приложения на сервере, будь то база данных, веб-сервер, почтовый сервер или ещё что. В современных Линуксах это systemd. Он же следит, что упало и перезапускает. Естественно, тут не рассмотрен вартант масштабирования на кучу серверов.
Благодарю, значит буду спускаться на уровни ниже...)
Обсуждают сегодня