Domyślny klient nginx_max_body_size

101

Otrzymuję błąd nginx:

413 Request Entity Too Large

Udało mi się zaktualizować mój client_max_body_sizeplik nginx.conf w sekcji serwera do 20M i to rozwiązało problem. Jednak jaki jest domyślny nginx client_max_body_size?

atw
źródło

Odpowiedzi:

143

Domyślna wartość client_max_body_sizedyrektywy to 1 MiB .

Można ją ustawić w http, servera locationkontekst - jak w większości przypadków , to dyrektywa w zagnieżdżonego bloku ma pierwszeństwo w stosunku do analogicznego dyrektywy w Przodkowie bloków .

Fragment dokumentacji ngx_http_core_module :

Syntax:   client_max_body_size size;
Default:  client_max_body_size 1m;
Context:  http, server, location

Ustawia maksymalny dozwolony rozmiar treści żądania klienta, określony w polu nagłówka żądania „Content-Length”. Jeśli rozmiar w żądaniu przekracza skonfigurowaną wartość, do klienta zwracany jest błąd 413 (zbyt duża jednostka żądania). Należy pamiętać, że przeglądarki nie mogą poprawnie wyświetlić tego błędu. Ustawienie rozmiaru na 0 wyłącza sprawdzanie rozmiaru treści żądania klienta.

Nie zapomnij ponownie załadować konfiguracji za pomocą poleceń nginx -s reloadlub service nginx reloadpoprzedzających sudo(jeśli takie istnieją).

ruvim
źródło
2
Za późno, aby zauważyć, że powinieneś użyć nginx -tdo przetestowania konfiguracji przed uruchomieniem, nginx -s reloadaby zastosować zmiany w konfiguracji. Nie może zagwarantować, że konfiguracja jest poprawna, ale wykryje błędy składniowe lub nieprawidłowe wartości.
kungphu
2
Tak, ale w każdym przypadku nginx -s reloadnie zastosuje konfiguracji niepoprawnej składni, ale zgłosi błąd.
ruvim
Jaka jest maksymalna wartość obsługiwana przez Nginx dla tej dyrektywy? Nie ma nic w dokumentach. Apache obsługuje maksymalnie 2 GB .
Dan Dascalescu
@DanDascalescu, maksymalna wartość zależy od off_trozmiaru typu (patrz ngx_http_core_module.h). W przypadku pliku wykonywalnego 64-bitowego off_trozmiar pliku to 64 bity , a maksymalna wartość to 2 ^ 63 bajty.
ruvim
19

Odpowiedź Pooja Mane zadziałała dla mnie, ale musiałem umieścić zmienną client_max_body_size wewnątrz sekcji http .

wprowadź opis obrazu tutaj

Aleksei Mialkin
źródło
15

Możesz zwiększyć rozmiar ciała w pliku konfiguracyjnym nginx jako

sudo nano /etc/nginx/nginx.conf

client_max_body_size 100M;

Uruchom ponownie nginx, aby zastosować zmiany.

Uruchom ponownie usługę sudo nginx

Pooja Mane
źródło
10
Dlaczego 100 mln? Dlaczego nie 100G? Twoja odpowiedź poprawiłaby się, gdybyś dodał uzasadnienie.
Hassan Baig
11
Tak, 42 ​​mln byłoby lepsze.
Evgeni Nabokov
4
ustaw 0 dla
unlimit