自学内容网 自学内容网

【问题定位记录】哪些情况可能造成403

起因

403是我们平时在http请求中常见的一种错误码,如果有一天别人问你什么情况下可能造成403,我想大家都能想到的一种就是权限问题,比如鉴权失败会造成403。

但实际上不止这一种原因可能造成403,还有一种可能的原因今天就被我遇到了。

过程

事情是这样的,我们的服务有个接口是上传文件的,然后我们遇到一个比较奇怪的问题,就是某个文件上传一直报403(其它文件没有问题),但是鉴权信息我看了下又是没问题的,并且我看后端的日志,在接口返回403时,后端是没有日志的,也就是说请求是没有到达后端的,而是在nginx那一层就被拦截了。

那么这个文件有什么问题呢?

我最开始怀疑是不是文件名有什么特别的地方,于是我把一个可以正常上传的文件的文件名改成这个不能上传的文件的文件名,试了一下文件可以正常上传,那么就不是文件名的问题

我又怀疑是不是文件大小的问题,于是试了一下把这个文件裁成原本大小的一半,发现还是不能正常上传。难道不是文件大小的问题?不死心的我再次把文件大小再裁一半,再尝试上传,发现果然成功了,那果然就是文件大小的问题。

揭秘

那这是什么原理呢?

我查了下nginx的配置,发现配置里面有个这个配置

server {
    ...
    client_max_body_size 100M;
    ...
}

其实真正起作用的就是这个配置。

所以如果你在上传文件的过程中遇到了403的错误,那么可以看下是不是这个配置小于了你想上传的文件的大小。


原文地址:https://blog.csdn.net/u013135921/article/details/144437989

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!