nginx产生【413 request entity too large】

解决方法
Nginx中的​【client_max_body_size​】配置属性

Nginx配置中限制了请求的实体大小,因此通过修改Nginx的配置文件来解决这个问题

根据项目找到对应的nginx配置文件对​client_max_body_size​的值进行修改

http节点下:

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

server节点下:

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

location节点下:

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

Tomcat的【maxPostSize】配置属性
另外的,Tomcat下的conf文件夹中的server.xml文件中也有属性配置【maxPostSize】可以限制post请求参数的大小。​

1
<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" />

在php内上传也需要调整配置

找到php.ini文件后,就可以开始修改其中的上传设置了。以下是两个可能需要修改的设置:

修改上传文件的大小限制
默认情况下,PHP可能会将上传文件的大小限制在2M以下。这对于需要上传大文件的应用而言往往太小,因此需要手动修改php.ini文件以扩大上传文件的大小限制。在php.ini文件中找到以下设置:

upload_max_filesize = 2M

将其改为所需的大小,例如:

upload_max_filesize = 20M

这将允许上传20MB以下的文件。

添加更多的文件类型
默认情况下,PHP只允许上传一些常见的文件类型,例如jpg、png、gif等图像文件类型。但是,有时需要上传其他文件类型(如PDF文件、Word文档等),因此需要手动修改php.ini文件以添加更多的文件类型。

在php.ini文件中找到以下设置:

;upload_max_filetype = "application/octet-stream"

去掉前面的分号,并在后面添加所需的文件类型,例如:

upload_max_filetype = "application/octet-stream","application/pdf","application/msword"

这将允许上传octet-stream、PDF和Word文档文件。

修改完php.ini文件后,需要重新启动Web服务器才能使设置生效。在操作完成后,应该再次测试上传功能以确保修改成功。

备注
PHP5.3版本中出现了php.ini-developmen和php.ini-production
PHP配置文件与PHP5.2版本相比,命名发生了变化:
php.ini-production对应于 php.ini-recommended
php.ini-development对应于 php.ini-dist
通常要将 php.ini-production重命名为 php.ini
二者不同之处在于?php.ini-development适合开发程式使用(测试用)
而?php.ini-recommended拥有较高的平安性设定,则适合上线当产品使用。
所以,一般将 php.ini-recommended或者 php.ini-production修改为 php.ini确保测试环境(外地)与正式环境(线上)一致。