У меня есть приложение 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}
и увеличении количества процессов.
Я пытаюсь определить основную проблему, прежде чем попробовать предложенное исправление. Что вызывает что-то подобное? Убивает ли приложение увеличение трафика / утечки памяти / соединений с базой данных? Есть ли способ контролировать что-то подобное?
Если ответ состоит в том, чтобы следовать этому другому такому сообщению, Почему это ответ?