“Client_max_body_size” ayarlı Nginx'te “413 Varlık Çok Büyük İsteği”


54

26 Gb'lik bir dosya yüklüyorum, ancak alıyorum:

413 Request Entity Too Large

Bunun ilgili olduğunu biliyorum, bu client_max_body_sizeyüzden bu parametreye ayarlıyım 30000M.

  location /supercap {
    root  /media/ss/synology_office/server_Seq-Cap/;
    index index.html;
    proxy_pass  http://api/supercap;
  }

  location /supercap/pipe {
    client_max_body_size 30000M;
    client_body_buffer_size 200000k;
    proxy_pass  http://api/supercap/pipe;
    client_body_temp_path /media/ss/synology_office/server_Seq-Cap/tmp_nginx;
  }

Ancak tüm dosya yüklendiğinde hala bu hatayı alıyorum.

Yanıtlar:


69

NGINX Konfigürasyon Dosyasını değiştirin

sudo nano /etc/nginx/nginx.conf

Bu değişkenin arama: client_max_body_size. Bunu bulursanız, örneğin boyutunu 100M'ye çıkarmanız yeterlidir. Eğer yoksa, o zaman içine ve http'nin sonuna ekleyebilirsiniz.

client_max_body_size 100M;

Değişiklikleri uygulamak için nginx'i yeniden başlatın.

sudo service nginx restart

Yükleme Sınırları için PHP.ini Dosyasını Değiştirme

Tüm yapılandırmalarda gerekli değildir, ancak php yapılandırmalarında hiçbir şeyin limitsiz kalmamasını sağlamak için PHP yükleme ayarlarını da değiştirmeniz gerekebilir.

PHP5-FPM kullanıyorsanız aşağıdaki komutu kullanın,

sudo nano /etc/php5/fpm/php.ini

PHP7.0-FPM kullanıyorsanız aşağıdaki komutu kullanın,

sudo nano /etc/php/7.0/fpm/php.ini

Şimdi aşağıdaki yönergeleri tek tek bulun

upload_max_filesize
post_max_size

ve sınırını 100M'ye yükseltin, varsayılan olarak 8M ve 2M'dir.

upload_max_filesize = 100M
post_max_size = 100M

Sonunda kaydedin ve PHP'yi yeniden başlatın.

PHP5-FPM kullanıcıları bunu kullanır,

sudo service php5-fpm restart

PHP7.0-FPM kullanıcıları bunu kullanır,

sudo service php7.0-fpm restart

İyi çalışacak !!!


1
nginx.conf'da client_max_body_size için neden 100Mb?
user2979409

Eğer yeterli ihtiyaçlarınız ama 100 mb göre herhangi bir değeri koyabilirsiniz
Sukhjinder Singh

ancak 30 GB'a kadar dosya yüklüyorum.
user2979409

Maksimum boyutta bir dosyayı bulmak ve onu daha o dosyayı daha izin
Sukhjinder Singh

öyleyse neden client_max_body_size benim / konumumda çalışmıyor?
user2979409

9

Bu boyuttaki dosyaları yüklüyorsanız, vücut boyutu kontrolünü tamamen şu şekilde devre dışı bırakmanız gerekir:

client_max_body_size 0;

3

Saygılarımla, neden bu kadar veri aktarmak için http kullandığınızdan emin değilim. Büyük transferlerimi ssh üzerinden yapıyorum

//such as:
tar cjf - /path/to/stuff | ssh user@remote-host "cd /path/to/remote/stuff;tar xjf -"

... bu bana bzip sıkıştırılmış transfer veriyor. Fakat eğer yeniden başlatılabilir bir transfer yapmam gerekirse, sftp, lftp, hatta rsync kullanabilirim. Bunlardan herhangi biri (veya türevleri veya kardeşleri)

  1. istenirse şifreli bir kanal kullanmak,
  2. kesintiye uğramış bir aktarmaya devam etmek ve
  3. transferi sıkıştırmak

Bunlardan sadece bir tanesi http üzerinden yükleme yapmaya çalışırken size bir seçenek olabilir (yani, https'de # 1).

Umarım yukarıdakilerden herhangi birine veya diğer birkaç alternatife bakarsınız.


Bunun soru ile ilgisi yok.
Zenklys

1
Sadece orada, çünkü adam Blueray ölçekli dosyaları http üzerinden transfer ediyor. Birisinin bunu neden yapmak istediğine dair daha fazla ayrıntıya sahip olmadan, soruyu soran adamın, soruyu başarıyla cevaplayamamakla en iyi şekilde hizmet edebileceğini düşünüyorum. Bu ayrıntılara aldırmamamın bir sorun olduğunu kabul ediyorum.
Matt Murphy
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.