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 и анализ на нем. Жду совета, по какому пути двигаться дальше.