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屬性設置爲負數才能表明不限制。

 

"你離開之後,我不管是往前看,仍是朝身後回顧,都空無一人。"

相關文章
相關標籤/搜索