170 похожих чатов

Всем привет. В очередной раз задался вопросом рассмотрения питона для веб.

Начну из далека: есть стандартный хостинг (apache, php) - для работы сайта требуется залить в корень index.php - при обращении к сайту, сервак будет обращаться к этому файлу и отдавать его содержимое. Вот так обстоят дела с php.
На сколько я понял в питоне "всё" иначе:
Никакой программы типа apache не нужен - пакет-сервак встроен в питон. Проблему увидел ещё во времена написания бота: дело в том, что чтобы запустить "прослушивание порта" - нужно запустить процесс из консоли, что естественно является основой нестабильности, потому-что бесперебойность процесса никто не контролирует и не перезапускает в случае завершения... Я так понимаю, для нормально работы сайта на питоне, нужно писать какую то низкоуровневую утилиту (не знаю на чём), которая будет мониторить, запущен ли питон-сервер и в случае завершения - запускать.
Господа ветераны, прошу помощи в решении столь тривиальной задачи. Или без танцев никак?

4 ответов

8 просмотров

Ты слышал про php-fpm?

Igor-Dmitriev Автор вопроса
Igor Dmitriev
нет

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

Igor-Dmitriev Автор вопроса
Tishka17
Тогда расскажу так. Типичное веб приложение работа...

Благодарю, значит буду спускаться на уровни ниже...)

Похожие вопросы

Обсуждают сегодня

А чем вам питонисты не угодили?😂
.
79
Язык Си можно выучить за день? По книжке ANSI C на 230 страниц
Vincent Vegan
29
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
22
Dim Dim, [02.07.2024 11:07] DB 0x62 Dim Dim, [02.07.2024 11:07] DB 0x66 Dim Dim, [02.07.2024 11:07] кто пояснит что это?
Dim Dim
14
Ошибка: segmentation fault (core dumped) Код: pastebin.com/BEsNNSSV Сообщение от компилятора: отсутствует ОС: Arch Linux Ядро: x86_64 Linux 6.9.7-arch1-1 Процессор: Intel Cele...
sec
4
Ещё такой вопрос. Мне необходимо хранить пароль пользователя локально. Для этого планирую использовать ini файл. Это для автозаполнения полей логин и пароль при авторизации. Е...
Евгений
19
Ребят, а за скок можно впарить анон чат с апишкой и веб админкой ?
Eugene Неелов
15
Кстати, я тут еще с одной темой столкнулся, вот учу я C++, на таком то ресурсе, а остальные постоянно советуют практиковаться, что то писать, проекты, но как писать если вот т...
aaswq1
7
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Карта сайта