Azure Web App блокирует AJAX-запросы к приложению django

У меня есть приложение на django (4.2.13 + python 3.10), которое в определенный момент делает AJAX-запросы для отображения прогресса пользователю при обработке данных из загруженного файла.

Когда я пробую это локально на своем компьютере (linux), это работает хорошо, и прогрессбар обновляется из данных, полученных в ответ на вызовы AJAX. Аналогичным образом он работает и на тестовом сервере (linux + nginx + gunicorn) и отображает прогресс без проблем.

На стороне браузера я использую команду jQuery .post для осуществления вызовов.

Когда я развертываю то же приложение в Azure Web App, оно не позволяет ни одному из вызовов пройти, все они остаются в состоянии Pending в браузере, и в журналах Azure нет абсолютно никаких следов.

Какие-нибудь подсказки?

OK, итак, я нашел проблему и, наконец, решил ее. Azure Web App использует gunicorn для запуска кода python / django, и по какой-то причине по умолчанию он порождает только одного рабочего. Изменил запуск на несколько рабочих, и теперь все работает.

Этот код нужно вставить в конфигурацию Web App в разделе Startup Command:

gunicorn --bind=0.0.0.0 --timeout 600 --workers=4 my_proj.wsgi:application

Надеюсь, это поможет другим людям с подобными проблемами.

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