У нас есть приложение Django, работающее на AWS Elasti c Beanstalk (EB) за балансировщиком нагрузки. Экземпляры запускают последнюю стандартную среду Amazon Linux с Python 3.6 и используют стандартную конфигурацию EB mod_wsgi
(с Apache 2.4).
Где-то в приложении мы import scipy.signal
используйте функцию scipy.signal.butter
.
Это прекрасно работает с scipy 1.3.3
, но когда мы обновляем до scipy 1.4.1
(в настоящее время последняя версия), сайт становится недоступным:
-
балансировщик нагрузки возвращает HTTP состояние 504 «Время ожидания шлюза», с пустой страницей
Только в журналах EB отображаются ... [core:error] [pid ...] [client ...] Script timed out before returning headers: wsgi.py
Обратите внимание, что развертывание по-прежнему проходит без проблем. Также обратите внимание, что проблема не возникает на наших локальных машинах разработки (windows и linux) при использовании сервера разработки Django (еще одна причина для использования apache для локального тестирования в качестве хорошо).
На первый взгляд кажется, что исправление, которое работает, - это изменение конфигурации Apache путем установки WSGIApplicationGroup %{GLOBAL}
, как предлагается, например, здесь (см. Также документацию mod_wsgi ).
Однако, это может привести к побочным эффектам, как описано, например, здесь .
Я не вижу каких-либо очевидных изменений в выпуске scipy 1.4 отмечает , чтобы указать, почему эта проблема возникает внезапно.
Может ли кто-нибудь объяснить, что изменилось в scipy 1.4, чтобы вызвать эту проблему, и есть ли другой способ обойти это, чем исправление WSGIApplicationGroup %{GLOBAL}
, описанное выше?