Client intended to send too large body

client intended to send too large body можно увидеть в логах Nginx когда клиент пытается загрузить какой-то файл, размер которого превышает установленный в конфигурации лимит. Это может быть большое изображение, PDF файл или что-то подобное.

 

 

Ошибка client intended to send too large body и как ее исправить

Ошибка в логе веб-сервера может выглядеть так:

tail -n 100 /var/log/nginx/error.log

referrer: «http://example.com/webasyst/shop/?action=products»
2018/02/15 12:31:40 [error] 27335#0: *14419 client intended to send too large body: 1492176 bytes, client: 123.123.123.123, server: example.com, request: «POST /webasyst/shop/?module=pages&action=uploadimage&r=2 HTTP/1.1», host: «example.com», referrer: «http://example.com/webasyst/shop/?action=products»

 

Чтобы исправить ее достаточно в основном конфигурационном файле пакета прописать директиву client_max_body_size и указать ее значение. Например, задав лимит в 40 Мб.

Директива размещается в блоке http nginx.conf

 

mcedit /etc/nginx/nginx.conf

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
worker_connections 768;
# multi_accept on;
}

http {

client_max_body_size 40m;

}

}

 

Проверяем конифурацию

nginx -t

 

Перезапускаем веб-сервер

nginx -s reload

 

После исправления этой ошибки в логах может появиться другая — upstream sent too big header while reading response header from upstream. Причины те же, и вторая ошибка также легко устраняется раскручиванием других лимитов.

 

Если используется PHP стоит убедиться еще и в том, что ограничения в PHP не станут препятстсвием при загрузке больших файлов. При необходимости правится upload_max_filesize в php.ini