前戏
生产环境上传视频报错:
从字面上看,说的是请求的实体太大的问题,那么可以联想到是HTTP请求中的Body大小被限制了的原因。
解决方法
Nginx中的【client_max_body_size
】配置属性
Nginx配置中限制了请求的实体大小,因此通过修改Nginx的配置文件来解决这个问题
根据项目找到对应的nginx配置文件对client_max_body_size
的值进行修改
http节点下:
http {
# 将Nginx代理的所有请求实体的大小限制为200m
client_max_body_size 200m;
}
server节点下:
server {
# 将该服务下的所有请求实体的大小限制为200m
client_max_body_size 200m;
}
location节点下:
location /yanggb {
# 将此路由请求的实体大小限制为20m
client_max_body_size 20m;
}
Tomcat的【maxPostSize】配置属性
另外的,Tomcat下的conf文件夹中的server.xml文件中也有属性配置【maxPostSize】可以限制post请求参数的大小。
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="2000"
redirectPort="8443"
URIEncoding="UTF-8"
maxThreads="3000"
compression="on" compressableMimeType="text/html,text/xml"
maxPostSize="256"/>
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0" protocol="AJP/1.3" />
要注意的是,在Tomcat7.0.63之前,maxPostSize属性设置为0和负数都可以代表不限制,但是之后的Tomcat版本只能将maxPostSize属性设置为负数才能代表不限制