uwsgi 잘못된 요청 블록 크기
황제 모드에서 uwsgi를 실행 중입니다.
uwsgi --emperor /path/to/vassals/ --buffer-size=32768
이 오류가 발생합니다
invalid request block size: 21327 (max 4096)...skip
무엇을해야합니까 ?? 나는 또한 시도했다 -b 32768
일부 자습서를 따르는 동안 동일한 문제가 발생했습니다. 문제는 옵션 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 바이트)를 할당합니다. 로그에 "잘못된 요청 블록 크기"를 받기 시작하면 더 큰 버퍼가 필요할 수 있습니다. buffer-size 옵션을 사용하여 늘리십시오 (최대 65535).
로그에서 요청 블록 크기로 '21573'을 수신하면 HTTP 프로토콜을 사용하여 uwsgi 프로토콜을 말하는 인스턴스와 통신하고 있음을 의미 할 수 있습니다. 이러지 마
여기에서 : https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html
uwsgi에 --protocol = http를 추가하여 문제를 해결할 수 있습니다.
나는 nginx에서 실행하려고하는 동일한 문제에 부딪 쳤으며 여기 에서 문서를 따르고 있었습니다 . 일단 nginx로 전환하면 --socket 매개 변수에 의해 지정된 포트에서 앱에 액세스하려고하지 않고 nginx.conf의 "listen"포트에 액세스하려고 시도해야합니다. 문제가 다르게 설명되었지만 제목은 내가 가진 문제와 정확히 일치합니다.
이 오류는 uWSGI 서버가 uwsgi
프로토콜을 사용 중이고 http
프로토콜 curl
또는 웹 브라우저 를 통해 프로토콜을 통해 직접 액세스하려고 할 때 표시됩니다. 가능하면 http
프로토콜 을 사용하도록 uWSGI 서버를 구성하여 웹 브라우저 또는 curl을 통해 액세스하십시오.
변경할 수 없거나 변경하지 않으려는 경우 nginx
로컬 또는 원격 uWSGI 서버 앞에 리버스 프록시를 사용할 수 있습니다 ( https://uwsgi-docs.readthedocs.org/en/latest/Nginx 참조). .html
너무 많은 일이 있다고 생각되면 uwsgi-tools
파이썬 패키지를 사용해보십시오 .
$ pip install uwsgi-tools
$ uwsgi_curl 10.0.0.1:3030
uwsgi_proxy
웹 브라우저 등을 통해 응용 프로그램에 액세스해야하는 경우 간단한 리버스 프록시 서버 도 있습니다. 자세한 답변 https : //.com/a/32893520/179581
참고 URL : https://stackoverflow.com/questions/15878176/uwsgi-invalid-request-block-size
'Programming' 카테고리의 다른 글
AJAX를 통해 배열을 mvc 동작으로 전달 (0) | 2020.07.13 |
---|---|
요소가 존재할 때까지 기능 대기 (0) | 2020.07.13 |
iPhone 시뮬레이터 용 스크린 샷 앱 (0) | 2020.07.13 |
PHP로 외부 루프를 끊을 수 있습니까? (0) | 2020.07.13 |
buildToolsVersion '26 .0.2 '에 대해 Android Studio를 2.3에서 3.0으로 업데이트 한 후'? attr / actionBarSize '기호를 확인할 수 없습니다. (0) | 2020.07.13 |