nginx出现413 Request Entity Too Large的错误

今天测试人员在上传较大的文件时出现413错误,如下图所示:


     也许你会说,已经有那么多写这类的文章了,你再在这里写岂不是多余,我也看了类似的文章,我在这里写出我的经历就是因为我的经历跟别人不太一样,所以才在此板书,下面入主题:

     知道这个问题的小伙伴多半知道如何解决“常见的413”错误--在nginx的nginx.conf配置文件http部分增加下面配置client_max_body_size 1m(此处大小设置你想限制上传的文件大小,默认是1M,1.11版本及其以前版本多半是这个数值,不排除后期版本会不会修改);

     我的经历不同之处在于:上面的设置对我来说没有一点效果!!我在本地测试时可以上传1M及其以上大小的文件,但是我在nginx.conf里面设置最大可上传大小为1M了啊,为什么没有效果呢,我研究了测试服务器上nginx的log日志,并对比了我自身电脑上nginx日志,发现了端倪:测试服务器在调用上传文件接口时会打印这条记录,但我自身电脑上却没有打印任何日志,于是我大胆的假设我在本自测上传文件时没有经过nginx,为什么会造成这种效果呢?

产生问题的根源就要分析nginx的反向代理功能了:

server {
listen       80;
server_name  xx.xx.com;
proxy_set_header X-Real-IP $remote_addr;

location ~ /services {
proxy_pass      http://127.0.0.1:21888;


location ~ /{
proxy_pass      http://127.0.0.1:8897;
}
}

        server_name填写的是域名,但是我在使用jquery.file.upload插件上传文件时使用的是ip,这样就会导致调用接口时没有经过nginx,所以nginx的设置也就没有任何效果了。

解决方案:把上传文件处写的ip改成域名,并在本地的hosts文件中将该域名映射为127.0.0.1,然后再在nginx.conf文件里面添加上面的反向代理部分即可。


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值