HttpRequest максимально допустимый размер в tomcat? - PullRequest
48 голосов
/ 01 июня 2010

Каков максимальный размер данных, который я могу отправить за один HttpURLConnection до Tomcat? Есть ли ограничения по размеру запроса?

Ответы [ 4 ]

57 голосов
/ 01 июня 2012

Вы должны изменить два возможных ограничения:

В conf\server.xml

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
                maxPostSize="67589953" />

В webapps\manager\WEB-INF\web.xml

<multipart-config>
  <!-- 52MB max -->
  <max-file-size>52428800</max-file-size>
  <max-request-size>52428800</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>
48 голосов
/ 01 июня 2010

Секция соединителя имеет параметр

maxPostSize

Максимальный размер в байтах POST, который будет обрабатываться при разборе параметра URL-адреса FORM контейнера. Ограничение можно отключить, установив для этого атрибута значение, меньшее или равное 0. Если не указано, этот атрибут имеет значение 2097152 (2 мегабайта).

Другой предел:

maxHttpHeaderSize Максимальный размер HTTP-заголовка запроса и ответа, указанный в байтах. Если не указан, для этого атрибута установлено значение 4096 (4 КБ).

Вы найдете их в

$TOMCAT_HOME/conf/server.xml
2 голосов
/ 19 апреля 2013

Чтобы добавить ответы, сервер приложений Apache Geronimo 3.0 использует Tomcat 7 в качестве веб-сервера, и в этой среде файл server.xml находится по адресу <%GERONIMO_HOME%>/var/catalina/server.xml.

Конфигурация вступает в силу, даже если консоль Geronimo на Application Server->WebServer->TomcatWebConnector->maxPostSize по-прежнему отображает 2097152 (значение по умолчанию)

0 голосов
/ 29 июня 2018

Хотя другие ответы включают в себя некоторые из следующих сведений, это абсолютный минимум, который необходимо изменить в экземплярах EC2, , особенно в отношении развертывания больших файлов WAR , и он наименее вероятно может вызвать проблемы будущие обновления. Я сталкивался с этими ограничениями примерно раз в два года из-за постоянно увеличивающегося размера файла WAR Jenkins (сейчас ~ 72 МБ).

Более конкретно, этот ответ применим, если вы встретите вариант следующей ошибки в catalina.out:

SEVERE [https-jsse-nio-8443-exec-17] org.apache.catalina.core.ApplicationContext.log HTMLManager:
FAIL - Deploy Upload Failed, Exception:
[org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException:
the request was rejected because its size (75333656) exceeds the configured maximum (52428800)]

В экземплярах Amazon EC2 Linux файл only , который необходимо изменить из установки Tomcat по умолчанию (sudo yum install tomcat8), выглядит следующим образом:

/usr/share/tomcat8/webapps/manager/WEB-INF/web.xml

По умолчанию максимальный размер загрузки составляет ровно 50 МБ:

<multipart-config>
  <!-- 50MB max -->
  <max-file-size>52428800</max-file-size>
  <max-request-size>52428800</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>

Существует только два значения, которые необходимо изменить (max-file-size и max-request-size):

<multipart-config>
  <!-- 100MB max -->
  <max-file-size>104857600</max-file-size>
  <max-request-size>104857600</max-request-size>
  <file-size-threshold>0</file-size-threshold>
</multipart-config>

Когда Tomcat обновляется в этих экземплярах, новая версия менеджера web.xml будет помещена в web.xml.rpmnew, поэтому любые изменения исходного файла не будут перезаписаны во время будущих обновлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...