uwsgi недопустимый размер блока запроса
Я запускаю uwsgi в режиме императора
uwsgi --emperor /path/to/vassals/ --buffer-size=32768
и получаю эту ошибку
invalid request block size: 21327 (max 4096)...skip
Что делать?? Я тоже пробовал -b 32768
5 ответов:
Я также столкнулся с той же проблемой, следуя некоторому учебнику. Проблема была в том, что я установил опцию
socket = 0.0.0.0:8000
вместоhttp = 0.0.0.0:8000
.socket
опция предназначена для использования с некоторым сторонним маршрутизатором (например, nginx), а когдаhttp
опция установлена uwsgi может принимать входящие HTTP-запросы и маршрутизировать их самостоятельно.
правильное решение - не переключаться на протокол HTTP. Вам просто нужно увеличить размер буфера в настройках uWSGI.
buffer-size=32768
или в режиме командной строки:
-b 32768
цитата из официальной документации:
по умолчанию uWSGI выделяет очень маленький буфер (4096 байт) для заголовков каждого запроса. Если вы начинаете получать "недопустимый размер блока запроса" в своих журналах, это может означать, что вам нужно больше буфер. Увеличьте его (до 65535) с помощью параметра размер буфера.
Если вы получаете’ 21573 ' в качестве размера блока запроса в ваших журналах, это может означать, что вы используете протокол HTTP для разговора с экземпляром, говорящим по протоколу uwsgi. Не делай этого.
отсюда:https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html
Я столкнулся с той же проблемой, пытаясь запустить его под nginx и был после документы здесь. Важно отметить, что как только вы переключитесь на nginx, вы должны убедиться, что вы не пытаетесь получить доступ к приложению на порту, указанном параметром --socket, а скорее к порту "listen" в nginx.конф. Хотя ваша проблема описана по-разному, название соответствует именно той проблеме, которая у меня была.
эта ошибка отображается, когда сервер uWSGI использует
uwsgi
протокол и один пытается получить к нему доступ черезhttp
протоколаcurl
или веб-браузер напрямую. Если вы можете, попробуйте настроить ваш сервер uWSGI для использованияhttp
протокол, так что вы можете получить доступ к нему через веб-браузер или завиток.в случае если вы не можете (или не хотите) изменить его, вы можете использовать обратный прокси-сервер (например,
nginx
) перед локальным или удаленным сервером uWSGI см. http://uwsgi-docs.readthedocs.org/en/latest/Nginx.htmlесли это кажется слишком много работы, попробуйте
uwsgi-tools
пакет python:$ pip install uwsgi-tools $ uwsgi_curl 10.0.0.1:3030
существует также простой обратный прокси-сервер
uwsgi_proxy
если вам нужно получить доступ к вашим приложениям через веб-браузер и т. д. Смотрите более развернутый ответ https://stackoverflow.com/a/32893520/179581