Усеченные или негабаритные заголовки ответов, полученные от процесса демона
Недавно я перенес приложение python django из дебианской системы в дистрибутив redhat. Приложение размещается с помощью httpd, mod_wsgi и работает в venv в процессе демона. По большим запросам я теперь получаю следующее сообщение об ошибке в файле журнала:
"Truncated or oversized response headers received from daemon process"
Я никогда не испытывал ничего подобного, и Google не является ключевым здесь.
Я проверил конфигурацию apache, но никакой конфиг не связан с заголовками ответов.
Моя конфигурация httpd.conf выглядит так (довольно стандартная):
WSGIPassAuthorization On
WSGIScriptAlias / /var/www/myapp/wsgi.py
WSGIDaemonProcess my.name python-path=/path/to/myapp/:/path/to/venv/lib/python2.7/site-packages display-name=%{GROUP}
WSGIProcessGroup my.name
Есть ли у любого гуру намек в каком направлении я должен смотреть?
Ответы
Ответ 1
Оказалось, что это не настоящая проблема. Проблема лежала глубже, поскольку я сменил Каира на Каир-Коффи, и RSVG-Handler не смог разобраться с Контекст-Объектом, исходящим из Cffi.
Нет моей проблемы с актом, у вас есть обновленная библиотека python, которая позволяет мне преобразовывать svg в png. Использование svg2png из CairoSVG не работает для меня. Я получаю
cairo возвращен CAIRO_STATUS_NO_MEMORY: из памяти
Ошибка, на которую я уверен, что она снова не говорит правду, и проблема лежит где-то в другом месте. Но давайте посмотрим.
Ответ 2
Код, используемый Apache mod_wsgi, применяет ограничение на размер одного заголовка ответа, возвращаемого из процессов режима демонов mod_wsgi. Это приведет к действительно загадочному сообщению об ошибке Apache, которое не указывает на проблему. Из памяти предыдущая ошибка:
Premature end of script headers
Предел размера также был жестко закодирован в Apache и не может быть изменен. Это вызвало проблемы для некоторых веб-приложений Python, таких как Keystone в OpenStack, который генерирует очень большие заголовки аутентификации.
В модуле mod_wsgi 4.1+ была удалена зависимость от кода Apache, и теперь предел становится настраиваемым. Сообщение об ошибке также более точно, как вы видели.
Максимальный размер заголовка по умолчанию для того, что возвращается из режима демона mod_wsgi, то есть имя и значение заголовка, составляет около 8192 байта. Вы можете переопределить это, используя параметр "размер заголовка-буфера" для WSGIDaemonProcess.
Можете ли вы указать, какое приложение и какой заголовок был настолько велик, что был достигнут предел, так как хотелось бы знать, какие другие веб-приложения Python, помимо Keystone, генерируют такие большие заголовки, если это обычно используемое приложение.
Вторая возможность, вытекающая из "усеченной" ссылки в этом сообщении, заключается в том, что ваш демон-процесс mod_wsgi разбился. Вы даже не говорите, что видели "ошибку сегментации" или подобное сообщение о том, что произошел сбой. Проверьте это и, если в это время есть другие сообщения в журнале ошибок, укажите, что они собой представляют, и можете рассматривать это как главную проблему.
Ответ 3
Недавно мы столкнулись с этой проблемой, и после нескольких дней энергичной угрызений совести и сильной головной боли мы обнаружили, что мы используем psycopg2-бинарный код в качестве зависимости от коннектора базы данных (я знаю, новичков)! В их документации прямо указано, что пакет не должен использоваться в производственной среде.
Мы добавили все остальные предложенные ответы, такие как добавление "WSGIApplicationGroup% {GLOBAL}" к нашим настройкам (которые мы сохранили), но все они в одиночку и вместе не решили проблему.
Мы также обнаружили, что другие библиотеки C, такие как numpy, вызывают проблемы.
Надеюсь, это поможет кому-нибудь когда-нибудь.
Django Webfaction & # 39; Тайм-аут при чтении заголовков ответов из процесса-демона & # 39;
http://initd.org/psycopg/docs/install.html#prerequisites
Ответ 4
У меня возникла проблема с этим на сервере CentOS 7 при развертывании Django с помощью httpd с mod_wsgi 4.5.4. Мне пришлось вернуться к использованию mod_wsgi 4.3.2, который решил мою проблему.
Ответ 5
Я установил filebeat, который изменил мою версию ssl, так что psycopy2 необходимо обновить, и ошибка была Усеченные или слишком большие заголовки ответа, полученные от процесса демона
Сделайте следующее: -
Удалите ваш пакет psycopy2 с помощью pip. Я использую pip3, потому что моя версия Python 3.6.8
sudo pip3 uninstall psycopg2
Переустановите psycopy2 с помощью pip.
sudo pip3 install psycopg2
До psycopg2-2.7.4 сейчас psycopg2-2.8.3
Ответ 6
У меня внезапно возникла такая же проблема после обновления. Следующее обновление устраняло проблему... Я запускаю arch, начиная с даты этого сообщения, версия WSGI в репо работает.
Ответ 7
В моем проекте Django (без каких-либо других сообщений об ошибке) у меня было то же сообщение об ошибке "Усеченные или негабаритные заголовки ответа, полученные от процесса-демона '...': /var/www/dev.audiocont.com/index.wsgi".
Моя ошибка состояла в том, что я изменил виртуальную среду и забыл адаптировать настройки Apache "dev.conf" к новому пути venv.