项目使用nginx反向代理后,用户反馈图片上传时总是提示上传中。
排查步骤:
1.页面是在微信小程序里的h5页面。根据用户描述进入页面测试了下,发现确实上传时总是转圈圈,提示上传中。确定确实存在问题。
2.查看原项目日志,发现没有接到图片上传的请求日志。其他日志都有,就是没有图片上传的。说明nginx没有把图片上传请求转发过来。
3.使用chrome浏览器访问h5页面,上传图片,同时观察请求数据包。测试发现能正常上传。原项目日志也能查到图片上传的请求日志。说明功能逻辑上通的。
4.没有使用nginx反向代理前,使用微信小程序也是能正常上传图片的,所以微信小程序问题应该也可以排除。但还是打开微信开发者工具测试了一遍。打开对应小程序页面测试,上传图片,同时观察请求数据包。测试发现能正常上传。
5.于是就感觉奇了怪了。想知道问题到底出在哪里。接着开启nginx日志功能。再次在手机进入微信小程序上传文件,上传失败,查看日志。发现返回413代码。
百度一下nginx 413
6.至此,找到了问题,工具上面配置,把client_max_body_size设置为指定大小,如20M。重新加载nginx。再次测试,问题解决。
主要还是对nginx不太熟悉,绕了很多弯路。