最近上线了一个新系统,昨天用户反映一个问题,文件上传到99%后就不在动了,无法上传文件。
当初以为是浏览器兼容性问题,我让用户清了下缓存还是没效果,最后去现场实际操作,查 network 中响应出:
413 Request Entity Too Large(nginx/1.2.1)
提示上传文件过大,原来Nginx默认配置是大小是1m,巧的是当初测试的时候并未把nginx集成进去,只做了单机功能测试,线上部署为集群式。
以下是配置:定义了上传文件限制与下载速率
http{
.........
limit_conn_zone $server_name zone=perserver:10m; #定义Server数据区,记录会话状态信息10m 空间
limit_conn_zone $binary_remote_addr zone=perip:10m; # 定义IP数据区
server {
.........
location / {
.........
client_max_body_size 200m; #限制200m
limit_conn perserver 1000; #整个Server连接数限制(并发)
limit_conn perip 20; #单个ip连接数限制(并发)
limit_rate_after 5m; #在传输5m后开始限速
limit_rate 500k; #带宽限制 500k/s
}
.........
}
}
总结: 集成测试必须得抓紧咯,这个问题就是测试时未把Nginx集成进去。
Nginx配置文档 : http://www.nginx.cn/doc/standard/httpcore.html