Nginx多重代理: 413 Request Entity Too Large

Nginx多重代理: 413 Request Entity Too Large

处理php+nginx环境下的文件上传出现:413 Request Entity Too Large,这样的报错,按照经验,对于这个问题的处理一般是下面的步骤:

1,修改nginx配置

Shell

1# vi /etc/nginx/nginx.conf

2,在http,server或者location段修改下面的配置:

# set client body size to 8M #client_max_body_size 8M;

3,根据文件大小的支持情况修改,让nginx可以支持接受post过来的大数据,保存后重新加载配置,使设置生效:

Shell

# /usr/local/nginx/sbin/nginx -s reload

上面的配置在我本机开发的时候是没有问题的,当然除此之外php本身处理上传也有相应的配置(php.ini):

INI

;This sets the maximum amount of memory in bytes that a script is allowed to allocatememory_limit = 256M ;The maximum size of an uploaded file.upload_max_filesize = 8M ;Sets max size of post data allowed. This setting also affects file upload. To upload large files, this value must be larger than upload_max_filesizepost_max_size = 8M

这不是问题的重点,重点是我在内网一台我有权限的UED服务器上线一个内部的代码规范审核系统,UED各系统是同域名挂载不同的虚拟目录下,另一台内网UED主服务器将内审系统URL(/review)下的内容转发到我有权限配置的服务器上,不管我怎么修改配置似乎都无法解决这个问题,好像我配置没有生效,在javascript丛林群里也有群友遇到这个问题,后来排查发现,是因为我们这里实际有两重的nginx转发,当用户访问域名的时候发生了这样的事(如下图):负责URL转发的nginx把数据全量转发到我的nginx服务器,我的nginx再把数据交给php-cgi处理,第一层转发的这里配置没有按照我这台的配置修改client_max_body_size上限导致无法转发到我这台nginx,因此不管我这里怎么配都是无效的,只要第一层转发里加上配置就搞定了。

ued-servers

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.