Объект запроса слишком велик

Я получаю это сообщение,

Request Entity Too Large
The requested resource
/index.php
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit. 

я установил

php_value post_max_size 50M
php_value upload_max_filesize 50M

в .htaccess но не помогло

Как это преодолеть?

Спасибо


person Oleksandr IY    schedule 17.01.2012    source источник
comment
fwiw, у меня была такая же ошибка. это было потому, что я использовал запрос POST, но не передавал никаких полей. длина содержимого, вероятно, равна нулю, что, вероятно, означает бесконечность.   -  person changokun    schedule 17.12.2012


Ответы (5)


После того, как вы закончили поднимать PHP memory_limit, post_max_size и upload_max_filesize, я хотел бы порекомендовать вам несколько статей, связанных с темой, возможно, одна из них решает проблему.

Я нашел это сообщение о сбое сервера:
https://serverfault.com/questions/79741/php-apache-post-limit/79745#79745

  • sybreon предлагает перепроверить Content-Length и, ссылаясь на , «убедиться, что вы подключаетесь к Apache напрямую, а не через прокси-сервер или обратный прокси-сервер. Некоторые обратные прокси-серверы помещают ограничить максимальный размер запроса в качестве меры безопасности. Поэтому вы можете проверить это, а также журналы Apache, чтобы убедиться, что больше ничего не происходит."

  • sybreon также разместил эту ссылку: Проблемы с ошибкой Apache 413.
    Следующее применимо только если у вас модуль mod_ssl включен в Apache. (В противном случае этот параметр может привести к сбою сервера.)
    Со ссылкой на статью:
    "Я использовал клиентские SSL-сертификаты Apache, максимальный размер которых составляет 128 КБ, и если требуется повторное согласование, более крупный POST завершится ошибкой.
    Эта публикация Bugzilla содержала подсказки. Вы должны установить следующее как ПО УМОЛЧАНИЮ для своего SSL-сервера, а не только для каталога.

    SSLVerifyClient require
    

    В противном случае происходит какое-либо повторное согласование и происходит сбой с ошибкой 413."

  • В предыдущей статье также упоминалось LimitRequestBody< /strong> директива.
    Парень говорит здесь, что соответствующая настройка этой директивы решила его проблему..

Я надеюсь, что одна из этих настроек решит эту проблему!

person Sk8erPeter    schedule 13.04.2012

Единственное, что мне помогло, это настроить размер буфера SSL. Вы можете установить это с помощью...

<Directory /my/blah/blah>
...
  # Set this to something big...
  SSLRenegBufferSize 10486000
...
</Directory>

... а затем просто перезапустите Apache, чтобы изменения вступили в силу. (Нашел это по адресу: http://forum.joomla.org/viewtopic.php?p=2085574)

Вы также можете использовать Location /, чтобы просто применить настройку ко всему VirtualHost:

<VirtualHost *:443>
# ...
    <Location />
        SSLRenegBufferSize 101048600
    </Location>
# ...
</VirtualHost>
person duskstriker    schedule 15.06.2012
comment
Обратите внимание, что это должно быть установлено на принимающей стороне. Так что не через прокси. В назначении Apache httpd. - person Nux; 08.10.2020

Мой сервер Apache. Это был модуль mod_security, который предотвращал публикацию больших данных размером около 171 КБ. Я сделал следующие конфигурации в mod_security.conf

SecRequestBodyNoFilesLimit 10486000
SecRequestBodyInMemoryLimit 10486000
person AnkitK    schedule 18.10.2013
comment
Это решение сработало для меня, спасибо! - person Firas Abd Alrahman; 01.05.2021
comment
Это тоже было для меня!! - person I'm Root James; 12.06.2021

Если max_post_upload и max_file_upload в PHP были установлены, и в конфигурационных файлах Apache2.conf или ModSec установлено достаточно высокое значение LimitRequestBody

тогда, возможно, файл .htaccess будет работать.

  1. Перейдите в каталог с загруженным php-файлом (файл или страница, выдающая ошибку.)

2 . Создайте или отредактируйте .htaccess

3 . Отредактируйте или создайте строку с LimitRequestBody 20971520 в ней.

  1. Сохраните .htaccess. Установите разрешения. (644 и владелец апача)

  2. Возможно, перезапустите апач.

Тада. Надеюсь исправлено.

Этот параметр устанавливает это ограничение только для этой папки - это один из способов избежать глобальных настроек в php и apache, которые делают вас открытыми для DOS-атак с большими пакетами/загрузками.

LimitRequestBody 0 дает вам неограниченное количество загрузок.

person Shane    schedule 06.10.2016

Я боролся с этой проблемой 413 - Запрос объекта слишком большой за последний день или около того, когда я пытался загрузить на сервер очень большие (в МБ) изображения.

Моя настройка — это проксирование запросов apache (227) на сервер jboss eap (6.4.20) для доступа к конечным точкам отдыха.

2 вещи работали для меня.

  1. Сделайте SSLVerifyClient обязательным на уровне виртуального хоста. Это означает, что для обслуживания всех ресурсов требуется действительный сертификат клиента. Это не вариант для меня, так как все ресурсы, кроме /api, НЕ должны быть защищены взаимной аутентификацией. Так что, пока это работало, это был не вариант для меня.

  2. Я удалил требуемый SSLVerifyClient глобального уровня и оставил его «необязательным». Я повторно включил требуемую опцию только на <Location /api>...</Location>. Хитрость заключалась в том, чтобы повторное согласование SSL происходило только после достижения определенного порога, который был бы нашим желаемым размером загружаемого файла.

  3. Итак, в конце концов выяснилось, что мне пришлось включить настройку «SSLRenegBufferSize» для определенного LocationMatch следующим образом:

    <LocationMatch ^/api/v1/path/(.*)/to/(.*)/resource/endpoint$>
    SSLRenegBufferSize 5242880 #allow upto 5MB for files to come through </LocationMatch>

(.*) в приведенном выше случае представляет мои параметры пути в конечной точке. Надеюсь это поможет.

person Sumant Shanbag    schedule 30.10.2018