0
点赞
收藏
分享

微信扫一扫

盘点遇到的那些403问题

微信公众号“SRE成长记”可查看原文

关于403 Forbidden

403 Forbidden是使用Nginx服务器时的常见错误,是http的一个状态码,表示客户端尝试访问web服务器的某些内容,但是,权限不足。

花样百出的403场景

1.索引文件问题

nginx配置文件nginx.conf默认的配置如下:

location / {
            root   html;
            index  index.html index.htm;
       }

1.1 问题场景

场景一:如果html目录为空目录,下面没有任何的文件,访问会返回403;

场景二:如果html非空,但不存在上述配置中的index.html、index.htm文件,也会返回403。

1.2 解决方法

1)在html目录下创建index.html

image.png

2)将html下的自定义文件名加入nginx.conf
image.png
3)索引文件不可用时允许 Nginx 列出目录。通过将以下条目添加到配置文件来启用此模块(公网开放服务器慎用!)

修改nginx.conf加入2行配置:

location / {
     root   html;
     index  index.html index.htm;
     autoindex on;   #自动索引
     autoindex_exact_size on;  #显示文件大小
   }

image.png

2. 权限设置错误

2.1 问题场景

场景一:nginx设置了访问控制白名单,客户端所在地址不在白名单之内;

场景二:nginx默认用户为nginx,而nginx无访问html目录的权限。
image.png

2.2 解决方法

1)如做了权限控制,评估是否开启访问白名单;

2)为了客户端能正常访问到资源,nginx 需要对整个路径具有 RWX(读取、写入和执行)权限。将资源赋予nginx用户权限即可。如:

chown nginx:nginx -R html
sudo chmod 755 {目录}
sudo chmod 644 {文件}

3. 域名代理配置的问题

3.1 问题场景

场景一:公网域名做了解析,但nginx没配置代理;
image.png
场景二:新增的nginx代理配置文件没生效
image.png
image.png

3.2 解决方法

修改或增加对应的配置文件,重启nginx。

4. http与https问题

4.1 问题场景

场景:某些特定的场景下,服务之间通过公网域名http方式调用接口,80端口调不通,返回403;
image.png
4.2 解决方法
临时解决可放开80端口http访问,去掉强制rewrite,但需要从研发端根本解决了。
image.png

5. 客户端自身的问题

403 Forbidden 除了除了服务端的问题,还可能是个别客户端本身的问题,例如:本地浏览器的缓存问题、防火墙问题,或者本地电脑的代理问题等。

关键是找到问题,对症下药,快速解决问题。

那么,你还遇到了哪些403问题呢?
::: hljs-right

(全文完)

:::
::: hljs-center

image.png

:::

举报

相关推荐

0 条评论