1. ホーム
  2. Qt

413 リクエストエンティティが大きすぎる問題の解決策

2022-02-13 11:10:54

413 Request Entity Too Large問題の回避策

本日のデータ入稿で、http:413 Request Entity Too Largeエラーが発生しました。

問題を解決した後のログは以下のとおりです。

今日のデータ送信で、http:413エラーが発生しました。

アップロードのファイルサイズが制限されていることを確認し、アップロードのファイルサイズを20Mに制限するようにサーバーを設定し、サービスを再起動しても問題は解決しませんでした。

さらに追跡調査をしたところ、根本的な原因が判明しました。

私たちのtomcatはnginx discovery service proxyを使用しており、nginxのアップロードのデフォルトのサイズ制限は1Mです。nginxのコンフィギュレーションで設定を変更することで、この問題は解決します。

回避策は以下の通りです。 

1. nginxサービスの設定ファイルnginx.confを開く

2. http{}にclient_max_body_size xxmを追加、xxは必要に応じて変更してください。

3. 保存して nginx を再起動すると、問題は解決します。

nginxリバースプロキシ・tomcatアーキテクチャを採用したサーバーにバックエンド環境を導入し、バックエンドで70Mの動画ファイルをアップロードしたところ、アップロードの途中で失敗してしまいました。

原因は、nginxの設定でアップロードされるファイルのサイズが制限されているためです

client_max_body_size。このパラメータは、アップロードされるファイルのサイズを制限するために設定され、http、server、locationの領域で設定することができる

[root@dev-huanqiu ~]# cat /Data/app/nginx/conf/nginx.conf

.......

.......

http {

    include mime.types;

    default_type application/octet-stream;

    charset utf-8;   



    #######

    ## http setting

    #######

    sendfile on;

    tcp_nopush on;

    tcp_nodelay on;

    keepalive_timeout 100; #This parameter indicates the http connection timeout, the default is 65s. If the upload file is large and not completed within the specified time, it will be automatically disconnected! So adjust this timeout appropriately.         

    fastcgi_connect_timeout 6000;

    fastcgi_send_timeout 6000;

    fastcgi_read_timeout 6000;

    fastcgi_buffer_size 256k;

    fastcgi_buffers 8 256k;

    fastcgi_busy_buffers_size 256k;

    fastcgi_temp_file_write_size 256k;

    ##

    client_header_timeout 120s; ## adjust larger

    client_body_timeout 120s; ## adjust larger

    client_max_body_size 100m; ## This is the main parameter that limits the size of the upload file

    client_body_buffer_size 256k;   



    ## support more than 15 test environments

    server_names_hash_max_size 512;

    server_names_hash_bucket_size 128;



    gzip on;

    gzip_min_length 1k;

    gzip_buffers 4 16k;

    gzip_http_version 1.1;

    gzip_comp_level 9;

    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php;

    gzip_vary on;



[root@dev-huanqiu ~]# cat /Data/app/nginx/conf/vhosts/admin.wangshibo.conf

server {

        listen 80;



        server_name admin.wangshibo.com;





        #if ($http_x_forwarded_for ! ~ ^(14.165.97.54|123.110.186.128|123.110.186.68)) {

        # rewrite ^. *$ /maintence.php last;

        #}



        access_log /var/log/wangshibo.log main;





       location / {

          proxy_pass http://127.0.0.1:8484/;

          proxy_connect_timeout 300; #These three timeouts are moderately large      

          proxy_send_timeout 600;        

          proxy_read_timeout 600;

          proxy_set_header X-Real-IP $remote_addr; # Get the client's real IP

          proxy_set_header REMOTE-HOST $remote_addr;

          proxy_set_header Host $host;

          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # Get the real ip of the proxy

          proxy_set_header X-Forwarded-Scheme $scheme; # resolve getScheme, isSecure, sendRedirect

          proxy_buffer_size 32k;

          proxy_buffers 32 256k;

          proxy_busy_buffers_size 512k;

          proxy_temp_file_write_size 512k;

        proxy_temp_file_write_size 512k; }



      location /static/video {

         root /Data/app/tomcat-7-admin-wls/static/video;

        }



    } ##end server

<テーブル