一次线上上传文件404问题的记录

解决

1.推测原因:接口路径不存在 详细检测接口路径是否正确?
排查措施:重读代码路径,仔细自己拼装路径,postMan接口模拟线上访问,经排查不是此问题

2.继续推测是不是会不会因为上传打的包有问题–?
排查措施:访问此类中的其他接口一一访问的通–>推测不是文件缺失问题
linux命令sz下载可用的命令对应的class文件,直接使用idea查看class文件,或者通过jd反编译工具查看class文件是否缺失–>进一步确认不是文件丢失问题

3.继续推测路径正确的情况下访问404继续访问确认是不是上传文件问题?
排查问题:使用postMan上传自定义空文件上传成功由此可以推断确实是上传文件的问题,由此多上传了几个文件发现当文件大小超过10k的时候就会报404错误

4.继续推测是不是springMVC上传文件大小查找错误文件找不到 报404?
排查问题:设置了springMVC上传文件大小继续上线测试还是有这个问题,同时在测试环境测试却没有这个问题,由此排查不是代码问题那是环境问题

5.推测是是否是nginx环境问题?
重新在线上启动了一个项目重写写了一个上传接口,还是有问题,进一步确认是环境问题

6.考虑到会不是nginx参数设置最大传输字节数的问题?
查看nginx.conf 看配置文件.已经存在 client_max_body_size 50M 并且设置的是50M.
查看nginx的error.log 每次访问都会有权限被拒绝的情况展示:
019/08/02 18:37:35 [crit] 437115#0: *34 open() “/usr/local/nginx/temp/0012414” failed (13: Permission denied)
小文件可以大文件不行,推测我们写的是大文件,所以nginx对大文件的传输会先缓存到某个目录,而此用户明显没有缓存成功被拒绝了

7.推测否是用户权限不够
nginx默认以nobody用户运行的,–>将其修改成root用户,经测试成功.

总结:

出现线上问题的时候先不要胡乱猜测,先认为自己代码是正确的先排查环境问题,首先查看nginx的日志,在看项目日志,可以提高排查问题的速度.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值