nginx产生【413 request entity too large】错误的缘由与解决方法

项目上在作上传文件(清单导入)的时候产生了这个错误:html

从字面上看,说的是请求的实体太大的问题,那么能够联想到是HTTP请求中的Body大小被限制了的缘由。nginx

Nginx中的【client_max_body_size】配置属性post

经过查资料,发现是Nginx配置中限制了请求的实体大小,所以就能够经过修改Nginx的配置文件来解决这个问题。Nginx的默认配置文件是conf目录下的nginx.conf文件,若是有自行扩展的配置文件能够在nginx.conf文件中查找include关键字去定位到相应的扩展配置文件。spa

具体的话是有一个【client_max_body_size】属性,这个属性能够配置在http节点下(http全局),能够配置在server节点下(server全局),也能够配置在location节点下(单应用)。要注意的是,这个属性在不配置的状况下默认值是1m,也就是限制了请求实体的大小为1m。debug

http节点下:rest

http {
    # 将请求实体大小限制为20m
    client_max_body_size 20m;
}

server节点下:code

server {
    # 将请求实体大小限制为20m
    client_max_body_size 20m;
}

location节点下:server

location /yanggb {
    # 将请求实体大小限制为20m
    client_max_body_size 20m;
}

保存以后要记得重启Nginx使修改后的配置生效。xml

service nginx restart

Tomcat的【maxPostSize】配置属性htm

另外的,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属性设置为负数才能表明不限制。

 

"你离开之后,我不管是往前看,仍是朝身后回顾,都空无一人。"

相关文章
相关标签/搜索