Nginx продолжает говорить client intended to send too large body
. Google и RTM указали на меня client_max_body_size
. Я установил его как 200m
в, nginx.conf
так и в vhost conf
, перезапустил Nginx пару раз, но я все еще получаю сообщение об ошибке.
Я что-то упустил? Бэкэнд есть php-fpm
( max_post_size
и max_upload_file_size
установлены соответственно).
client_max_body_size
вhttp
разделе есть ожидаемый эффект с версией nginxОтветы:
Следуя документации nginx , вы можете установить client_max_body_size 20 м (или любое нужное вам значение) в следующем контексте:
источник
http
илиlocation
настройках. Работает, когда установлен наserver
уровне. nginx / 1.4.4Наконец, крупные загрузки NGINX успешно работают на размещенных сайтах WordPress (согласно предложениям от nembleton & rjha94)
Я подумал, что это может быть полезно для кого-то, если я добавлю немного разъяснений к их предложениям. Для начала, пожалуйста, убедитесь, что вы включили директиву увеличенной загрузки во ВСЕ ТРИ отдельных блока определения (сервер, местоположение и http). У каждого должна быть отдельная строка ввода. Результат будет выглядеть примерно так (где ... отражает другие строки в блоке определения):
(в моей настройке ISPconfig 3 этот блок находится в файле /etc/nginx/nginx.conf)
(в моей настройке ISPconfig 3 эти блоки находятся в файле /etc/nginx/conf.d/default.conf)
Также убедитесь, что файл php.ini вашего сервера соответствует этим настройкам NGINX. В моем случае я изменил настройки в разделе File_Uploads в php.ini, чтобы они выглядели так:
Примечание: если вы управляете настройкой ISPconfig 3 (моя установка на CentOS 6.3, в соответствии с The Perfect Server ), вам нужно будет управлять этими записями в нескольких отдельных файлах. Если ваша конфигурация аналогична конфигурации в пошаговой настройке, файлы конфигурации NGINX, которые вам нужно изменить, находятся здесь:
Мой файл php.ini был расположен здесь:
Я продолжал пропускать блок http {} в файле nginx.conf. Видимо, игнорирование этого привело к ограничению загрузки до предела по умолчанию 1М. После внесения соответствующих изменений вам также необходимо перезапустить службы NGINX и PHP FastCGI Process Manager (PHP-FPM). В приведенной выше конфигурации я использую следующие команды:
источник
/etc/init.d/nginx reload
вместо этого. Это добавило такие преимущества, как «если конфигурация неверна», NginX не перестанет работать.nginx -t
(тестирует синтаксис файла конфигурации), а затемnginx -s reload
(выполняет реальную перезагрузку).По состоянию на март 2016 года года я столкнулся с этой проблемой, пытаясь POST JSON через https (из запросов Python, не то, что это имеет значение).
Хитрость заключается в том, чтобы поставить "client_max_body_size 200M;" по крайней мере в двух местах
http {}
иserver {}
:1.
http
каталог/etc/nginx/nginx.conf
2.
server
каталог в виртуальном хосте./etc/nginx/sites-available/mysite.com
, для тех, у кого нет vhosts, это, вероятно, ваш nginx.conf или в том же каталоге, что и он.3.
location /
каталога в том же месте , как 2./
, но если он вообще не работает, я бы порекомендовал применить это к,/
а затем, когда его работа будет более конкретной.Помните - если у вас есть SSL, это потребует от вас установки вышеуказанного для SSL
server
иlocation
тоже, где бы это ни было (в идеале, то же самое, что и 2. ). Я обнаружил, что если ваш клиент пытается загрузить по http, и вы ожидаете, что он получит 301-е на https, nginx фактически прервет соединение перед перенаправлением из-за того, что файл слишком велик для http-сервера, поэтому он должен быть в обоих .Последние комментарии предполагают, что с SSL это связано с новыми версиями nginx, но я на 1.4.6 и все хорошо :)
источник
client_max_body_size
это приветствуется в разделе,http
без необходимости добавлять его где-либо еще.Вам необходимо применить следующие изменения:
Update
php.ini
(Найти правильный INI файлphpinfo();
) и увеличенияpost_max_size
иupload_max_filesize
размера вы хотите:Обновление Nginx настройки для вашего веб - сайта и добавить
client_max_body_size
ценность в вашейlocation
,http
илиserver
контекста.Перезапустите NginX и PHP-FPM:
ПРИМЕЧАНИЕ. Иногда (в моем случае почти каждый раз) вам нужно завершать
php-fpm
процесс, если он не обновлялся командой service должным образом. Для этого вы можете получить список процессов (ps -elf | grep php-fpm
) и убить по одному (kill -9 12345
) или использовать следующую команду, чтобы сделать это за вас:источник
Посмотрите, устанавливаете ли вы директиву client_max_body_size внутри блока http {}, а не внутри блока location {}. Я установил его внутри блока http {}, и он работает
источник
Кто-то исправит меня, если это плохо, но я хотел бы максимально заблокировать все, и если у вас есть только одна цель для загрузки (как это обычно бывает), то просто нацелите ваши изменения на этот один файл. Это работает для меня в пакете Ubuntu nginx-extras mainline 1.7+:
источник
У меня недавно была похожая проблема, и я узнал, что
client_max_body_size 0;
могу решить эту проблему. Это установит client_max_body_size без ограничений. Но лучшая практика заключается в улучшении вашего кода, поэтому нет необходимости увеличивать этот лимит.источник
Предполагая, что вы уже установили client_max_body_size и различные настройки PHP (upload_max_filesize / post_max_size и т. Д.) В других ответах, затем перезапустили или перезагрузили NGINX и PHP без какого-либо результата, запустите это ...
nginx -T
Это даст вам любые неразрешенные ошибки в ваших конфигах NGINX. В моем случае я боролся с ошибкой 413 в течение всего дня, прежде чем понял, что в конфигурации NGINX есть некоторые другие неразрешенные ошибки SSL (неправильный путь для сертификатов), которые необходимо исправить. Как только я исправил нерешенные проблемы, которые я получил от 'nginx -T', перезагрузил NGINX и EUREKA !! Это исправило это.
источник
Я настраиваю dev-сервер для игры с тем, что отражает наш устаревший живой, я использовал The Perfect Server - Ubuntu 14.04 (nginx, BIND, MySQL, PHP, Postfix, Dovecot и ISPConfig 3)
После того, как возникла та же проблема, я наткнулся на этот пост, и ничего не работает. Я изменил значение в каждом рекомендуемом файле (nginx.conf, ispconfig.vhost, / sites-available / default и т. Д.)
Наконец, изменение
client_max_body_size
в моем/etc/nginx/sites-available/apps.vhost
и перезапуске nginx - вот что сработало. Надеюсь, это поможет кому-то еще.источник
Я столкнулся с той же проблемой, но не нашел ничего общего с nginx. Я использую nodejs в качестве внутреннего сервера, использую nginx в качестве обратного прокси-сервера, код 413 запускается сервером узла. Узел использования коа разбирает тело. коа ограничивают длину urlencoded.
установить formLimit на большее может решить эту проблему.
источник
Была та же проблема, что
client_max_body_size
директива была проигнорирована.Моя глупая ошибка заключалась в том, что я положил внутрь файл,
/etc/nginx/conf.d
который не заканчивался.conf
. Nginx не будет загружать их по умолчанию.источник
Если вы используете версию Windows nginx, вы можете попытаться убить весь процесс nginx и перезапустить его, чтобы увидеть. Я столкнулся с той же проблемой в моей среде, но решил ее с помощью этого решения.
источник
tasklist /fi "imagename eq nginx.exe"