nginx がファイルのアップロードに失敗し、アップロードされたファイルが大きすぎるというメッセージが表示されます。問題の解決方法

王林
リリース: 2020-12-10 16:07:44
転載
5173 人が閲覧しました

nginx がファイルのアップロードに失敗し、アップロードされたファイルが大きすぎるというメッセージが表示されます。問題の解決方法

問題の説明:

ファイルのアップロードに失敗しました。ファイル サイズは約 4M です。アップロード プログラムは Java で、nginx リバース プロキシ経由で Fastdfs に書き込まれますが、常に失敗します。nginx エラー ログを確認すると、次の内容が表示されます:

client intended to send too large body: 4134591 bytes
ログイン後にコピー

(関連する推奨事項: nginx チュートリアル##) #)

分析:

エラー メッセージによると、クライアントから送信されたボディが大きすぎます。nginx のデフォルトのクライアント ボディ サイズは 1M です。

公式ドキュメントは次のとおりです:

Syntax: client_max_body_size size;
Default: client_max_body_size 1m;
Context: http, server, location
Sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. If the size in a request exceeds the configured value, the 413 (Request Entity Too Large) error is returned to the client. Please be aware that browsers cannot correctly display this error. Setting size to 0 disables checking of client request body size.
ログイン後にコピー

解決策:

公式ドキュメントによると、http、server、location、およびnginx 設定ファイル内のその他の設定ブロック。クライアントによるアップロードを許可するファイルの本体サイズを調整します。 0 に設定すると、制限がないことを示します。

コード例:

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
	
    client_max_body_size 100m;
	....
	}
ログイン後にコピー

以上がnginx がファイルのアップロードに失敗し、アップロードされたファイルが大きすぎるというメッセージが表示されます。問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート