• 【转】nginx产生【413 request entity too large】错误的原因与解决方法


    从字面上看,说的是请求的实体太大的问题,那么可以联想到是HTTP请求中的Body大小被限制了的原因。

    Nginx中的【client_max_body_size】配置属性

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

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

    http节点下:

    http {
        # 将Nginx代理的所有请求实体的大小限制为20m
        client_max_body_size 20m;
    }

    server节点下:

    server {
        # 将该服务下的所有请求实体的大小限制为20m
        client_max_body_size 20m;
    }

    location节点下:

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

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

    service nginx restart

    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属性设置为负数才能代表不限制。

  • 相关阅读:
    你真的了解wordwrap和wordbreak的区别吗?
    python入门3——基本数据类型 岳岳
    python入门04——输入输出 岳岳
    第一次计算机理论知识 岳岳
    Web 开发与设计之 Google 兵器谱
    Web 开发与设计之 Google 兵器谱
    Web 开发与设计之 Google 兵器谱
    window.showModalDialog 以及window.open用法简介
    Web 开发与设计之 Google 兵器谱
    Web 开发与设计之 Google 兵器谱
  • 原文地址:https://www.cnblogs.com/fanbi/p/14768756.html
Copyright © 2020-2023  润新知