皇帝モードでuwsgiを実行しています
uwsgi --emperor /path/to/vassals/ --buffer-size=32768
そしてこのエラーを取得
invalid request block size: 21327 (max 4096)...skip
何をすべきか??私も試しました-b 32768
k
しませんでした。フルナンバーを提供する必要がありました。ここで使用できる形式へのポインタが見つかりません。
皇帝モードでuwsgiを実行しています
uwsgi --emperor /path/to/vassals/ --buffer-size=32768
そしてこのエラーを取得
invalid request block size: 21327 (max 4096)...skip
何をすべきか??私も試しました-b 32768
k
しませんでした。フルナンバーを提供する必要がありました。ここで使用できる形式へのポインタが見つかりません。
回答:
私もいくつかのチュートリアルを続けている間に同じ問題に遭遇しました。問題は、のsocket = 0.0.0.0:8000
代わりにオプションを設定したことですhttp = 0.0.0.0:8000
。
socket
一部のサードパーティ製ルーター(nginxなど)で使用するためのhttp
オプションですが、オプションが設定されている場合、uwsgiは着信HTTP要求を受け入れ、それ自体でルーティングできます。
socket = /tmp/myapp.sock
か、http = 0.0.0.0:8000
または任意のニーズに応じて。
正しい解決策は、HTTPプロトコルに切り替えないことです。uWSGI設定でバッファサイズを増やす必要があるだけです。
buffer-size=32768
またはコマンドラインモード:
-b 32768
公式ドキュメントからの引用:
デフォルトでは、uWSGIは各リクエストのヘッダーに非常に小さなバッファー(4096バイト)を割り当てます。ログで「無効なリクエストブロックサイズ」を受け取り始めた場合は、より大きなバッファが必要であることを意味している可能性があります。buffer-sizeオプションを使用して(最大65535まで)増やします。
ログでリクエストブロックサイズとして「21573」を受け取った場合は、HTTPプロトコルを使用して、uwsgiプロトコルを話すインスタンスと通信している可能性があります。これを行わないでください。
ここから:https : //uwsgi-docs.readthedocs.io/en/latest/ThingsToKnow.html
http-socket
ここで使用する必要があります。
uwsgi
プロトコルの場合、OPと同じエラーが発生する可能性があります
http-socket
。バッファサイズを増やした場合でも、他の場合は「502 Bad Gateway」が発生しました。
私はnginxの下でそれを実行しようとして同じ問題に遭遇し、ここのドキュメントに従っていました。nginxに切り替えたら、-socketパラメータで指定されたポートではなく、nginx.confの「リッスン」ポートでアプリにアクセスしないようにする必要があることに注意してください。あなたの問題は異なって説明されていますが、タイトルは私が抱えていた問題と正確に一致します。
--protocol = httpをuwsgiに追加して修正できます
protocol=http
するだけ.ini
このエラーは、uWSGIサーバーがuwsgi
プロトコルを使用していて、http
プロトコルcurl
またはWebブラウザを介して直接アクセスしようとしたときに表示されます。可能であれば、http
プロトコルを使用するようにuWSGIサーバーを構成して、Webブラウザーまたはcurl経由でアクセスできるようにします。
変更できない(または変更したくない)場合はnginx
、ローカルまたはリモートのuWSGIサーバーの前でリバースプロキシ(など)を使用できます。https: //uwsgi-docs.readthedocs.org/en/latest/Nginxを参照してください。 .html
作業量が多すぎる場合は、uwsgi-tools
pythonパッケージを試してみてください。
$ pip install uwsgi-tools
$ uwsgi_curl 10.0.0.1:3030
uwsgi_proxy
Webブラウザーなどを介してアプリケーションにアクセスする必要がある場合は、単純なリバースプロキシサーバーもあります。より詳細な回答を参照してくださいhttps://stackoverflow.com/a/32893520/179581
ドキュメントからの別のコメントで指摘されているように:
ログでリクエストブロックサイズとして「21573」を受け取った場合は、HTTPプロトコルを使用して、uwsgiプロトコルを話すインスタンスと通信している可能性があります。これを行わないでください。
Nginxを使用している場合、この構成(または同様に奇妙なもの)を使用していると、これが発生します。
proxy_pass http://unix:/path/to/socket.sock
これは、HTTPをuWSGIに話します(これにより不機嫌になります)。代わりに、次を使用します。
uwsgi_pass unix:/path/to/socket.sock;
男は同じ問題を抱えています。だから私はそれをやった... UWSGI + DJANGO + NGINX + REACT +を使用して見て
1-nano /etc/uwsgi/sites/app_plataform.ini [uwsgi]
DJANGO_SETTINGS_MODULE = app_plataform.settings env = DJANGO_SETTINGS_MODULE settings.configure()
chdir = / home / app_plataform home = / root / app_plataform module = prometheus_plataform.wsgi:application
マスター=真のプロセス= 33バッファーサイズ= 32768
ソケット= /home/app_plataform/app_plataform.sock chmod-socket = 777バキューム= true
2-nginxで深刻なパフォーマンスのアップグレードを行います...ユーザーwww-data;
worker_processes auto; worker_processes 4; pid /run/nginx.pid; /etc/nginx/modules-enabled/*.confを含めます。
イベント{worker_connections 4092; multi_accept on; }
http {##アップグレード構成
client_body_buffer_size 16K; client_header_buffer_size 16k; client_max_body_size 32m; #large_client_header_buffers 2 1k;
client_body_timeout 12; client_header_timeout 12; keepalive_timeout 15; send_timeout 10; access_log off;
## # 基本設定 ##
sendfileがオン。tcp_nopush on; tcp_nodelay on; #keepalive_timeout 65; types_hash_max_size 2048; server_tokens off;
server_names_hash_bucket_size 64; #server_name_in_redirect off;
/etc/nginx/mime.typesを含めます。default_type application / octet-stream;
###SSL設定##
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #SSLv3を削除、参照:POODLE ssl_prefer_server_ciphers on;
###ログ設定##
access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log;
###Gzip設定##
gzipオン; gzip_comp_level 2; gzip_min_length 1000; gzip_proxied
期限切れ、キャッシュなし、ストアプライベート認証。gzip_types text / plain application / x-javascript text / xml text / css application / xml; gzip_vary on;#gzip_proxied any; #gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; #gzip_types text / plain text / css application / json application / javascript text / xml application / xml application / xml + rss text / javascript;
###仮想ホスト構成##
/etc/nginx/conf.d/ .confを含めます。/ etc / nginx / sites-enabled /を含めます。}
3-次に...サービスまたはreebotサーバーを再起動します...
systemctl restart uwsgi&systemctl restart nginx