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;

}

}



Пример с фрагментом конфигурационного файла и результат проверки конфигурации приведен на скриншоте:

client intended to send too large body



Проверяем конфигурацию, убеждаемся в том, что ошибок в выводе нет

nginx -t



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

nginx -s reload



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



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

Проверить актуальные настройки PHP можно добавив в корень сайта скрипт phpinfo и обратившись к нему через браузер.

Сказать спасибо