Django и IIS (wfastcgi.py, httpPlatform или ...)

Мне нужно запустить в ближайшие несколько лет Django на IIS (не спрашивайте почему :-).

Я нашел два способа https://learn.microsoft.com/en-us/visualstudio/python/configure-web-apps-for-iis-windows?view=vs-2022

1. httpPlatform + runserver

wsgi.multithread:True wsgi.multiprocess:False

Решение многопоточное, работает почти хорошо, мало ресурсов, хорошая производительность. 2*5 процессов могут решить что-то вроде 1500 запросов в секунду.

Но:

  • Сервер IIS иногда возвращает "HTTP Error 502: Bad Gateway" во время повторного опроса приложения. Не так часто, но...

  • В документации к Django runserver большими буквами написано: "НЕ ИСПОЛЬЗУЙТЕ ЭТОТ СЕРВЕР В ПРОИЗВОДСТВЕННЫХ УСЛОВИЯХ"

    .
  • на некоторых сайтах написано "HttpPlatformHandler был заменен на ASP.NET Core Module"

А HttpPlatformHandler не является частью IIS.

2. fastCGI + wfastcgi

wsgi.multithread:False wsgi.multiprocess:True

Это решение является однопоточным, работает хорошо, без ошибок, даже если происходит переработка или высокая нагрузка. Но потребляет много ресурсов: 1500req = 1500 запущенных процессов, 100 ГБ памяти почти ни для одного. Большое количество запущенных процессов означает большое потребление системной кучи, загружая глобальные переменные, ресурсы, импорт... снова и снова.

На некоторых сайтах, конечно, говорится: "wfastcgi по сути устарел..."

Итак - есть ли эффективный и надежный способ запустить Django под IIS, который продержится на некоторых версиях Windows 2019, 2022 и последующих хотя бы 5-10 лет?

Существует ли какой-нибудь порт с .Net на Django, с ASP.Net core на Django? Или это должен сделать я (у меня нет свободных выходных... ;-)

Спасибо Антонин

Я провел несколько тестов производительности двух портов Django на IIS и анализ на нем. Жду совета, по какому пути двигаться дальше.

Вернуться на верх