Нужен ли Gunicorn для внутренних асинхронных микросервисов?

Насколько я читаю по всему Интернету, лучшая практика для развертывания приложений Flask/Django - это оставить позади веб-сервер, такой как nginx, и связать их с предварительно подготовленным сервером, таким как gunicorn или uWSGI.

Это хорошо по многим причинам, таким как ssl-завершение, защита от HTTP-атак (nginx), разветвление потоков для параллелизма, перезапуск приложения после утечки памяти или другие исключения (gunicron).

Я хочу развернуть микросервис внутреннего API на sanic с pm2, так как он не предназначен для клиентов, а скорее будет вызываться только из внутренних сервисов. SSH-завершение и защита от HTTP-атак не имеют значения, параллелизм гарантируется асинхронной природой sanic и перезапуск после исключения обрабатывается pm2.

Мне все еще нужны Gunicorn и Nginx? Разве я не могу просто запустить процесс приложения, как есть, и позволить ему напрямую общаться со своими абонентами?

1 ответ

Вам абсолютно не нужно иметь Gunicorn перед вашим стеком. Sanic может нормально работать, не имея перед собой веб-сервера, поскольку у него есть собственный внутренний сервер.

Я все еще рекомендовал бы использовать nginx для завершения TLS и для обработки статических файлов (даже если sanic может сделать оба из них), поскольку это эффективно.

вот ссылка на другой ответ, который я дал на тот же вопрос: https://community.sanicframework.org/t/gunicorn-uwsgi-vs-build-in-http-server/47/2?u=ahopkins

Тебе это не нужно. Посмотрите на http://supervisord.org/ чтобы запустить, перезапустить, автозапустить и т. Д. Ваши услуги.

Тем не менее, я использую Gunicorn и Supervisord в сочетании.

Другие вопросы по тегам