У меня есть опыт работы с Flask и Falcon, для запуска сайтов в prod я использовал отдельные http-серверы, такие как uwsgi\unicorn. Но нужно ли мне это для современного для Sanic? По документам он может хорошо хранить серверные файлы.
Недавно я ответил на этот же вопрос на форумах сообщества Sanic.
Короткий ответ - нет. Вам не нужно использовать пушки или другой подобный сервер в производстве. Sanic app.run
можно использовать и хорошо работает. Таким образом, вопрос тогда становится, я должен использовать....
Для этого и повторю свой ответ с форумов, я бы рекомендовал вам взглянуть на ваше предполагаемое использование и определить, что имеет наибольший смысл.
Да, Sanic может обслуживать статические файлы. Если вы делаете что-то маленькое и легкое, то, возможно, единственный пример Sanic для обслуживания всего вашего контента имеет смысл.
Тем не менее, почти во всех случаях вы получите лучшую производительность, если бы вы ставили статические файлы прямо из чего-то вроде nginx
. Это (по моему мнению) относится к ЛЮБОЙ структуре Python (или, если на то пошло, к любой структуре). Статические файлы обычно лучше всего обслуживаются напрямую.
Что касается того, должен ли ваш динамический контент проходить через gunicorn
прежде чем ударить Sanic... снова, это вариант. Я лично не вижу преимущества для большинства проектов. Это еще один слой в стеке и не добавляет много к миксу. Могут быть некоторые функции, которые вы получаете из коробки, поэтому я бы порекомендовал вам проверить, есть ли что-то, что сервер предоставит вам из коробки, что Sanic не делает.