174 votes

taille de bloc de la demande d'uwsgi inval inval inval inval inval inval inval inval inval

J'exécute uwsgi en mode empereur.

uwsgi --emperor /path/to/vassals/ --buffer-size=32768

et j'obtiens cette erreur

invalid request block size: 21327 (max 4096)...skip

Que faire ? J'ai aussi essayé -b 32768 .

249voto

rcruz Points 191

J'ai également rencontré le même problème en suivant un tutoriel. Le problème est que j'ai défini l'option socket = 0.0.0.0:8000 au lieu de http = 0.0.0.0:8000 . socket destinée à être utilisée avec un routeur tiers (nginx par exemple), alors que lorsque l'option http est activée, uwsgi peut accepter les requêtes HTTP entrantes et les acheminer par lui-même.

188voto

Farsheed Points 397

La bonne solution n'est pas de passer au protocole HTTP. Il suffit d'augmenter la taille du tampon dans les paramètres de uWSGI.

buffer-size=32768

ou en mode ligne de commande :

-b 32768

Citation de la documentation officielle :

Par défaut, uWSGI alloue un très petit tampon (4096 octets) pour les en-têtes de chaque requête. Si vous commencez à recevoir le message "invalid request block size" dans vos journaux, cela peut signifier que vous avez besoin d'un tampon plus grand. Augmentez-la (jusqu'à 65535) avec l'option buffer-size.

Si vous obtenez '21573' comme taille de bloc de requête dans vos journaux, cela peut signifier que vous utilisez le protocole HTTP pour parler avec une instance du protocole uwsgi. Ne faites pas cela.

D'ici : https://uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html

19voto

ajamardo Points 43

Je pourrais le réparer en ajoutant --protocol=http à l'uwsgi.

14voto

Paulo SantAnna Points 376

J'ai rencontré le même problème en essayant de l'exécuter sous nginx et j'ai suivi la docs aquí . Il est important de noter qu'une fois que vous passez à nginx, vous devez vous assurer que vous n'essayez pas d'accéder à l'application sur le port spécifié par le paramètre --socket mais plutôt le port "listen" dans nginx.conf. Bien que votre problème soit décrit différemment, le titre correspond exactement au problème que j'ai rencontré.

8voto

Andrei Points 3689

Cette erreur est affichée lorsque le serveur uWSGI utilise uwsgi et on essaie d'y accéder via http protocole par curl ou le navigateur web directement. Si vous le pouvez, essayez de configurer votre serveur uWSGI pour utiliser http de sorte que vous pouvez y accéder par le biais d'un navigateur web ou de curl.

Si vous ne pouvez pas (ou ne voulez pas) le modifier, vous pouvez utiliser un proxy inverse (par ex. nginx ) devant le serveur uWSGI local ou distant, voir https://uwsgi-docs.readthedocs.org/en/latest/Nginx.html

Si vous avez l'impression que cela représente trop de travail, essayez de uwsgi-tools paquet python :

$ pip install uwsgi-tools

$ uwsgi_curl 10.0.0.1:3030

Il existe également un serveur proxy inverse simple uwsgi_proxy si vous devez accéder à votre/vos application(s) via un navigateur web, etc. Voir la réponse plus détaillée https://stackoverflow.com/a/32893520/179581

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X