我可以在一个单独发送的最大数据大小HttpURLConnection是Tomcat多少?请求大小是否有任何限制?
Fre*_*man 61
您必须修改两个可能的限制:
在 conf\server.xml
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="67589953" />
Run Code Online (Sandbox Code Playgroud)
在 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>
Run Code Online (Sandbox Code Playgroud)
sta*_*ker 51
的连接器部具有参数
maxPostSize
POST的最大大小(以字节为单位)将由容器FORM URL参数解析处理.可以通过将此属性设置为小于或等于0的值来禁用该限制.如果未指定,则此属性设置为2097152(2兆字节).
另一个限制是:
maxHttpHeaderSize请求和响应HTTP标头的最大大小,以字节为单位指定.如果未指定,则此属性设置为4096(4 KB).
你找到了他们
$TOMCAT_HOME/conf/server.xml
Run Code Online (Sandbox Code Playgroud)
Fan*_*ing 13
当您从他们的官方网站(今天的 tomcat 版本 9.0.26)下载 tomcat 时,您安装到 tomcat 的所有应用程序都可以处理无限大小的HTTP 请求,因为应用程序本身对请求大小没有任何限制。
但是,当您尝试在 tomcat 的管理器应用程序中上传应用程序时,该应用程序的默认 war 文件限制为50MB。例如,如果您尝试安装 Jenkins,例如今天的 77 MB,它将失败。
Tomcat 本身对每个端口都有大小限制,这在conf\server.xml. 这是由maxPostSize每个Connector(端口)的属性控制的。如果此属性不存在(默认情况下),则对请求大小没有限制。
要对特定端口添加限制,请为属性设置字节大小。例如,默认 8080 端口的以下配置将请求大小限制为 200 MB。这意味着所有安装在 8080 端口下的应用程序现在都有 200MB 的大小限制
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="209715200" />
Run Code Online (Sandbox Code Playgroud)
通过端口级别大小限制后,您仍然可以配置应用程序级别限制。这也意味着应用程序级别限制应小于端口级别限制。可以通过每个 servlet 或 web.xml 文件中的注释来完成限制。同样,如果根本没有设置,则请求大小没有限制。
通过java注解设置限制
@WebServlet("/uploadFiles")
@MultipartConfig( fileSizeThreshold = 0, maxFileSize = 209715200, maxRequestSize = 209715200)
public class FileUploadServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
通过 web.xml 设置限制
<web-app>
...
<servlet>
...
<multipart-config>
<file-size-threshold>0</file-size-threshold>
<max-file-size>209715200</max-file-size>
<max-request-size>209715200</max-request-size>
</multipart-config>
...
</servlet>
...
</web-app>
Run Code Online (Sandbox Code Playgroud)
Tomcat 的 Manager 应用程序(默认为 localhost:8080/manager)只不过是一个默认的 Web 应用程序。默认情况下,该应用web.xml的请求限制配置为50MB。要通过此管理器应用程序安装(上传)大小大于 50MB 的应用程序,您必须更改限制。从中打开管理器应用程序的 web.xml 文件webapps\manager\WEB-INF\web.xml并按照上述指南更改大小限制,最后重新启动 tomcat。
| 归档时间: |
|
| 查看次数: |
137151 次 |
| 最近记录: |