1

これは以前に何度か尋ねられたことは知っていますが、設定で機能させることができません。client_max_body_sizenginx のデフォルト値が 1 MBより大きいファイルをアップロードしようとすると、413 エラーが発生します。

これは私の設定です:

nginx.conf:

http {
    client_max_body_size 500M;
    limit_req_status 429;
    limit_conn_status 429;
    limit_req_zone $binary_remote_addr zone=worktoday:40m rate=10r/s;

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;

    include /etc/nginx/mime.types;
    default_type application/octet-stream;

    access_log /var/log/nginx/access.log;
    error_log /var/log/nginx/error.log;

    gzip on;
    gzip_disable "msie6";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

mysite.com:

  server {
      client_max_body_size 500M;
      listen 80;

      location / {
          client_max_body_size 500M;

          proxy_pass http://backend;

          proxy_set_header Host $host;

      }

  }

  upstream backend {
      client_max_body_size 500M;
      least_conn;

      server 172.16.10.10;
      server 172.16.10.12;
  }

私はすべての組み合わせを試しclient_max_body_size、すべての場所に入れ(今のように)、一部だけに入れ、0に設定して(制限を無効にする)などを試しました。

私はこれを解決するために必死です。

nginx の背後には、gunicorn で実行されるフラスコ アプリケーションがあります。私はすでにアプリを単独で(前にnginxなしで)試しましたが、動作します。

ここで何か助けていただければ幸いです、ありがとう。

4

1 に答える 1

6

わかりました、昨日この質問をしたとき、私は完全に燃え尽きており、展開構成を忘れていました。

メインサーバーはロードバランサーとして機能し、背後にはnginxを備えた他の2つのサーバーがあります. これらの他の 2 つの nginx の存在を忘れていましたが、それらはリクエストを拒否したものでした。

これら2つを設定client_max_body_sizeすると、最終的に問題が解決しました。

ヒント: 問題を解決するために、寝てから戻ったほうがよい場合もあります。

于 2016-05-18T08:09:05.123 に答える