Поиск по сайту:

Как исправить «клиент намеревался отправить слишком большое тело» в Nginx


Если вы получаете неприятную ошибку «клиент намеревался отправить слишком большое тело», как и я, вам повезло, потому что сегодня мы собираемся решить эту статью. На самом деле, я пишу этот абзац еще до того, как исправлю ошибку, в ожидании, что я ее исправлю и у меня будет статья для публикации.

На самом деле происходит то, что я только что создал этот сайт на новом сервере и пытался загрузить большое изображение для статьи, которую пишу. Размер изображения всего 1,5 МБ, но в Интернете он очень большой, поэтому nginx, вероятно, блокирует его. Обычно вы можете просто загрузить изображение меньшего размера, и все будет в порядке, но почему ошибка может нас утомить?

Скорее всего проблема где-то в плохой конфигурации. И… конечно.

Исправление ошибки

Вам нужно будет найти файлы конфигурации nginx. На моем сервере они расположены в /usr/local/nginx/conf/, и есть папка с поддержкой сайтов, в которой находится фактический файл сайта. Вы можете добавить эту опцию в nginx.conf или в конкретный файл конфигурации сайта, который находится в папке с поддержкой сайтов. То, что вы ищете, это раздел, который выглядит примерно так:

server {
        listen  80;
        server_name www.thisismysite.com;

Как только вы найдете это, вы поймете, что находитесь в правильном месте. Под этим вы захотите добавить эту строку, которая установит максимальный размер тела для входящего запроса клиента на 5 МБ. Вы можете изменить его на 10 МБ или 100 МБ или любое другое значение, которое вы предпочитаете, но 5 МБ было хорошим значением для наших целей.

client_max_body_size 5M;

Конечно, вы должны тщательно обдумать, хотите ли вы разрешать более крупные запросы, потому что это может быть проблемой безопасности, чтобы разрешить поступление огромных запросов, особенно если вы пострадали от DDoS или просто неправильно сконфигурированного клиентского скрипта.