Время ожидания сценария истекло до возвращения заголовков: wsgi.py - Django на Elastic Beanstalk - PullRequest
0 голосов
/ 15 марта 2019

У меня есть приложение Django на Elastic Beanstalk. Он работает в 99% случаев, но иногда после отправки запроса функции в views.py приложение перестает работать, отключается на 3-5 минут, а затем возвращается в режим онлайн, как будто ничего не произошло. Единственные признаки этого в журналах:

Script timed out before returning headers: wsgi.py
Script timed out before returning headers: wsgi.py
Script timed out before returning headers: wsgi.py

тогда он вернулся к нормальной жизни. Я не видел интенсивного / ненормального количества памяти или процессора, используемого во время этого. Времена, когда я видел это, происходят:

  • Казалось бы случайно
  • Когда на мой сайт попал сканер пентестов / уязвимостей (увеличение трафика)
  • Когда приложение не использовалось в течение нескольких дней и неожиданно использовалось снова

Я в недоумении, как отладить это.

django.config


container_commands:
  01_migrate:
    command: "python manage.py migrate --noinput"
  02_collectstatic:
    command: "python manage.py collectstatic --noinput"

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: analyzer/wsgi.py
  aws:elasticbeanstalk:container:python:staticfiles:
    /static/: static/

files:
  "/etc/httpd/conf.d/ssl_rewrite.conf":
      mode: "000644"
      owner: root
      group: root
      content: |
          RewriteEngine On
          <If "-n '%{HTTP:X-Forwarded-Proto}' && %{HTTP:X-Forwarded-Proto} != 'https'">
          RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
          </If>

У меня включены значения по умолчанию NumProcesses=1 и NumThreads=15. Я обнаружил еще одну запись SO , рассказывающую об этой ошибке, и их рекомендация заключалась в добавлении WSGIApplicationGroup %{GLOBAL} и увеличении количества процессов.

Я пытаюсь определить основную проблему, прежде чем попробовать предложенное исправление. Что вызывает что-то подобное? Убивает ли приложение увеличение трафика / утечки памяти / соединений с базой данных? Есть ли способ контролировать что-то подобное?

Если ответ состоит в том, чтобы следовать этому другому такому сообщению, Почему это ответ?

...