両方のサーバーでデフォルトの最大サイズを超えるファイルをアップロードできるように、nginx + gunicornを構成する必要があります。
私のnginx.confファイルは次のようになります:
server {
# ...
location / {
proxy_pass_header Server;
proxy_set_header Host $http_Host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_connect_timeout 60;
proxy_pass http://localhost:8000/;
}
}
アイデアは、2つの場所で2,000万のリクエストを許可することです。
/admin/path/to/upload?param=value
/installer/other/path/to/upload?param=value
ここに貼り付けたものと同じレベルでlocation
ディレクティブを追加しようとしました(404エラーが発生しました)。また、location /
ディレクティブ内に追加しようとしました(413 Entity Too Large
エラーが発生しました)。
私のロケーションディレクティブは、最も単純な形式で次のようになります。
location /admin/path/to/upload/ {
client_max_body_size 20M;
}
location /installer/other/path/to/upload/ {
client_max_body_size 20M;
}
しかし、それらは機能しません(実際、私は多くの組み合わせをテストしました、そして私はこれについて必死に考えています。
助けてください可能であれば:これを機能させるにはどのような設定を行う必要がありますか?
どうもありがとうございます!
これは最終的に次のようなことをして機能しました:
location / {
proxy_pass_header Server;
proxy_set_header Host $http_Host;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Protocol ssl;
proxy_connect_timeout 120;
proxy_pass http://localhost:8000/;
location /admin/path/to/upload {
client_max_body_size 50m;
proxy_pass http://localhost:8000/admin/path/to/upload;
}
}
ルート以外の場所にclient_max_body_size
があると、ほぼ機能していたようです。また、nginxconfでdav_methods PUT;
を設定して、PUTおよびDELETEリクエストを有効にしましたか?