当前位置:网站首页 > 编程语言 > 正文

接口403错误怎么解决(接口403是什么意思)



作为一名运维人员,当系统出现故障或者错误时我们要能找出问题并解决问题,而这个过程就需要我们日积月累的排错经验和丰富的知识积累

本次案例中使用到阿里云的服务器,通过 yum 安装了 nginx,安装时候一切正常,访问默认网站也没问题。

可是在我配置了一个新的虚拟主机并通过域名访问它的时候,报了403错误。

虚拟主机配置如下:

因为这次案例涉及到计算机网络中HTTP协议的相关知识所以我们先来回顾一下

HTTP状态码表示客户端HTTP请求的返回结果,标记服务器端的处理是否正常或者出现了什么错误,我们可以根据返回的状态码来判断是否得到了正确的处理

所以HTTP状态码非常重要,我们先来看一下常见的HTTP状态码有哪些吧

  • 1XX:接受的请求正在处理
  • 2XX:请求正常处理完毕
  • 3XX:需要进行附加操作以完成请求
  • 4XX:客户端请求出错,服务器无法处理请求
  • 5XX:服务器处理请求出错

在了解了HTTP状态码之后我们知道403是客户端请求没有权限。

我们还可以看一下 nginx 的错误日志(当出现问题时别忘了日志是我们应该优先去查看的)

nginx的访问日志和错误日志在目录下,我们查看一下

 

Permission denied ,也就是没有权限

这下我们知道了网站不能访问的原因是客户端的请求没有权限,或者说权限被拒绝了

如果服务器防火墙和selinux没有关闭的话,是会导致出现403错误的

linux本身有两层安全防火墙,通过IP过滤机制的 iptables 实现第一层服务。iptables 防火墙通过直观地监视系统的运行情况,阻挡网络中的一些恶意攻击,保护整个系统的正常运行,免遭攻击和破坏。

第二层是 tcp_wrappers,通过 tcp_wrappers 可以实现对系统中提供的某些服务的开放和关闭、允许和禁止,从而更有效的保障系统安全地运行

而SELinux(安全增强型Linux),它是一个Linux内核模块,也是Linux的一个安全子系统。

知道了一些基础概念之后,我们来看看它们有没有打开

先看防火墙的状态

可以看到,防火墙现在是处于关闭状态的

我们再来看一下 selinux 的状态

可以看到也是处于 disabled 状态的

如果我们指定的存放资源路径里面没有相关文件,例如 index.html 或者 index.php文件

我们可以看到在我的虚拟主机配置文件里指定的资源路径为,我们去看一下里面有没有相关文件(也就是)

可以看到,是有这个文件的,所以排除这个原因

一般来讲,为了安全起见,防止黑客攻击我们的nginx入侵80端口之后获得了 root 权限。我们的nginx工作用户一般不是 root

我们来查看一下

 

我们可以看到 master进程是由 root 用户创建的,而 worker 进程是由 master 进程创建的

我们再去到主配置文件里看一下 nginx 的工作用户是谁

可以看到工作用户是 nginx

那么就找到原因了:启动nginx的是root用户,而工作用户是nginx,两个不一致就会导致403错误

我们修改工作用户和启动用户一致

这样就成功解决!成功访问到了网站

可是,这样会导致如果我们的80端口被黑客入侵,那么黑客就拥有了 root 权限,这是我们不敢想象的。为了安全起见,我们不建议这样用

其实大多数403错误,都主要是因为 nginx 没有网站资源目录的权限,所以为了安全起见,我们通常都不会将 nginx工作用户改成 root,而是去赋予网站资源目录权限

我们先去看下网站资源目录的权限

都是777权限,这是因为我之前给它提权过。

咦不对啊,明明已经改成777权限了,怎么还是不行?

不知道细心的你有没有发现,我将网站资源放在了 目录下

 

我们看一下目录的权限吧

可以看到是550权限,而且属主和属组都是 root,也就是说 nginx用户没有任何权限,所以才会出现403错误。

这里我们将root目录提权一下即可解决403问题

 

但是通常在业务中,我们不会将网站资源放在 root 目录下,都是放在根目录下。这样的话就不会有任何问题了

当我们访问 nginx 网站的时候出现403错误,我们首先想到的是客户端请求没有权限,既然是权限问题,我们就应该照着这条线索排查下去

  • 首先查看一下我们的防火墙和selinux,看看他们有没有关闭或者说有没有将客户端请求屏蔽掉
  • 查看我们的网站资源相关文件存不存在,配置文件里的路径有没有写错
  • 查看nginx的启动用户和工作用户是否一样,为了安全问题,不建议将工作用户改成 root
  • 查看一下我们存放网站资源的目录对nginx用户是否开启了权限(通常放在根目录下而不会放在root目录下)
到此这篇接口403错误怎么解决(接口403是什么意思)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • lda主题模型作用(lda主题模型基本原理)2025-05-13 21:54:09
  • imp导入dmp文件命令指定表(imp导入dmp文件参数详解)2025-05-13 21:54:09
  • 认证识别码是什么(识别认证是什么意思)2025-05-13 21:54:09
  • 快对作业小程序打开(快对作业怎么打开)2025-05-13 21:54:09
  • 文件权限775什么意思(文件权限755什么意思)2025-05-13 21:54:09
  • 蓝牙地址不可用怎么回事苹果(蓝牙地址不可用什么意思)2025-05-13 21:54:09
  • 二级域名解析到一级域名(二级域名解析到一级域名的方法)2025-05-13 21:54:09
  • wifi字典破解app(wifi字典破解在线)2025-05-13 21:54:09
  • 结构游戏的种类(结构游戏种类和使用方法有哪些)2025-05-13 21:54:09
  • 苹果手机收不到验证短信解决方法(苹果手机收不到短信怎么回事)2025-05-13 21:54:09
  • 全屏图片