Мы запускаем наше приложение Python за nginx. Сначала мы использовали uWSGI, потому что он быстрый, надежный и простой в развертывании. Затем, когда количество одновременных клиентов (использующих отправленные сервером события / поток событий) увеличилось, мы частично переключили приложение на gunicorn + gevent.
В настоящее время приложение обслуживается следующим образом:
Должны ли мы оставаться с этой настройкой или есть какие-то причины для перехода с uWSGI на Gunicorn?
Это действительно зависит от того, сколько функций uWSGI является частью вашей инфраструктуры. Одна из целей WSGI - облегчить переход от одного адаптера к другому. Если вы используете uWSGI только для части "WSGI", вы можете без проблем перейти на Gunicorn.
Сказав это, вы должны принять во внимание, что поддержка uWSGI gevent действительно мощная и сильно интегрирована с uWSGI api (как только вы загрузите плагин gevent, все внутренние блокирующие устройства сервера связаны с примитивами gevent), так что, возможно, вы можете рассмотреть это (в дополнение к этой разгрузке uWSGI позволяет вам перемещать запросы из одного экземпляра в другой, не блокируя фронтенд-воркер, так что ваш rest api может использоваться как «прокси с большей логикой»)