【发布时间】:2013-04-01 02:56:33
【问题描述】:
Tomcat 7 管理器将战争文件大小限制为 50 Mo。
- 为什么限制为 50 Mo?
- war 文件的最大大小应该是多少? (在实践中)
我正在使用 Grails 2.2,它生成的最小 WAR 为 28 Mo。 所以,50 分钟这个限制是很容易达到的。
【问题讨论】:
标签: java tomcat tomcat7 war grails-2.2
Tomcat 7 管理器将战争文件大小限制为 50 Mo。
我正在使用 Grails 2.2,它生成的最小 WAR 为 28 Mo。 所以,50 分钟这个限制是很容易达到的。
【问题讨论】:
标签: java tomcat tomcat7 war grails-2.2
这只是为您设置的通过 Tomcat 7 管理器上传和部署的限制。您可以部署到 tomcat 服务器的 war 文件的大小确实没有限制。
Here 是一个可以帮助您增加此上传大小的链接。
引用自链接--
转到管理器应用程序的 web.xml(例如,它可以是 在 /tomcat7/webapps/manager/WEB-INF/web.xml 下。增加 最大文件大小和最大请求大小:
<!– 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>
【讨论】:
如果您使用的是 Tomcat 8,max-file-size 将不在 web.xml 中。相反,打开 conf/server.xml 并找到 HTTP 连接器的标记条目。然后添加
maxPostSize="0"
这个标签的属性和价值。完成对conf/server.xml 文件的编辑后,保存并重新启动 Apache Tomcat。
【讨论】:
max-file-size 在 Tomcat 8.0.20 中仍位于 web.xml 中,按照 Oscar Lopez 的回答设置为 50MB。
50 MB 默认文件大小限制不是硬编码的,您可以在 webapp 文件夹的 Manager 应用程序的 web.xml 文件中更改它。您必须增加max-file-size 和max-request-size:
<!– 50MB max –>
<max-file-size>52428800</max-file-size>
<max-request-size>52428800</max-request-size>
<file-size-threshold>0</file-size-threshold>
用适合您需要的值替换当前值。
【讨论】:
转到管理器应用程序的 web.xml(例如它可能在 /tomcat7/webapps/manager/WEB-INF/web.xml 下。
将 max-file-size 和 max-request-size 增加到例如 100Mb
【讨论】:
在 tomcat7 中,更新 tomcat7/server.xml。我在ubuntu中安装了tomcat7,所以目录如下
ll /etc/tomcat7/
total 220
drwxr-xr-x 4 root root 4096 Oct 6 18:14 ./
drwxr-xr-x 136 root root 12288 Oct 6 16:12 ../
drwxrwxr-x 3 root tomcat7 4096 Sep 23 15:44 Catalina/
-rw-r--r-- 1 root tomcat7 6506 Jun 27 12:48 catalina.properties
-rw-r--r-- 1 root tomcat7 1394 Jan 25 2014 context.xml
-rw-r--r-- 1 root tomcat7 2370 Feb 18 2016 logging.properties
drwxr-xr-x 2 root tomcat7 4096 Sep 23 16:06 policy.d/
-rw-r--r-- 1 root tomcat7 6716 Oct 6 18:14 server.xml
-rw-r----- 1 root tomcat7 1607 Sep 23 15:50 tomcat-users.xml
-rw-r--r-- 1 root tomcat7 168099 Nov 25 2015 web.xml
你会在 conf 文件 etc/tomcat7/server.xml 中看到连接器部分,
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"/>
停止tomcat,只在末尾添加maxPostSize,
sudo service tomcat7 stop
更新 server.xml 中的连接器,
<!-- A "Connector" represents an endpoint by which requests are received
and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8080
-->
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
URIEncoding="UTF-8"
redirectPort="8443"
maxPostSize="57000000"/>
然后重启tomcat。
sudo service tomcat7 start
【讨论】: