当前位置: 代码网 > it编程>数据库>Mysql > 一文详解Nginx的访问限制与访问控制

一文详解Nginx的访问限制与访问控制

2024年09月05日 Mysql 我要评论
访问限制访问限制是一种防止恶意访问的常用手段,可以指定同一ip地址在固定时间内的访问次数,或者指定同一ip地址在固定时间内建立连接的次数,若超过网站指定的次数访问将不成功。请求频率限制配置请求频率限制

访问限制

访问限制是一种防止恶意访问的常用手段,可以指定同一ip地址在固定时间内的访问次数,或者指定同一ip地址在固定时间内建立连接的次数,若超过网站指定的次数访问将不成功。

请求频率限制配置

请求频率限制是限制客户端固定时间内发起请求的次数。

如何启用请求频率?

(1)定义:在开启访问限制之前,需要对限制规则进行定义。

如下图:在nginx主配置文件中定义好如下限制规则

上述参数详解:

limit_req_zone 表示限制请求规则,其中zone也有空间的意思。

$binary_remote_addr 表示二进制形式的客户端地址。

req_zone 表示规则名称,为了便于引用,允许用户自定义。

10m 表示存储客户端ip地址的空间大小。

rate 表示访问频率的限制范围,1 r/s 表示1秒钟一次。

(2)引用

限制规则定义之后需要在主页配置文件中引用。

(3)测试

首次访问页面浏览正常

连续多访问几次后,出现页面无法访问。这是因为在主配置文件中定义了请求频率限制,并在主页配置文件中引用了。

注意:nginx的主配置文件对应它管理的所有网站,主页配置文件只对应它所属的网站。如果将限制规则引用到主配置文件中,nginx管理的所有网站都将被改变;

如何启用连接频率限制?

连接频率限制是指限制客户端固定时间内发起建立连接的次数。

1.定义

与请求频率相同,连接频率限制也需要进行定义。但连接频率在主配置文件中只定义规则名称与ip地址存储空间。

 limit_conn_zone 表示限制连接规则,其中zone也有空间的意思。

$binary_remote_addr 表示二进制形式的客户端地址。

conn_zone 表示规则名称,为了便于引用,允许用户自定义。

10m 表示存储客户端ip地址的空间大小。

2、在主页文件中配置引用即可

上述引用了连接频率限制的名称,还定义了同一个用户ip地址的最大连接数,此处为一个连接。

访问控制

访问控制是控制客户端对服务端的访问,并非仅限制请求次数,而是允许某些请求或者直接拒绝某些请求。分为基于主机的访问控制,另一种是基于用户的访问控制。

1、原理:基于主机的访问控制是指通过主机的信息,来判断是否接受请求,该功能基于nginx模块——ngx_http_access_module。

基于主机

在主页配置文件中添加基于主机的访问控制:

allow 表示允许该ip访问

deny 表示禁止该ip访问,all表示所有

测试:

1、用不在白名单的客户端进行访问,结果被拒绝。

2、用白名单的用户访问可以成功访问

注意:allow与deny是按照顺序执行的。

基于用户

原理:基于用户的访问控制是指通过用户的信息,来判断是否接受该请求,该功能基于nginx模块——ngx_http_auth_basic_module。

1、创建用户认证文件

使用htpasswd 生成用户密码。

-c是创建的意思

-m是加密的意思

/etc/nginx/conf.d/passwd表示密码文件的路径。

2、启用认证

测试可知需要输入用户信息才能访问

以上就是一文详解nginx的访问限制与访问控制的详细内容,更多关于nginx访问限制与访问控制的资料请关注代码网其它相关文章!

(0)

相关文章:

  • mysql中的自连接与join关联

    mysql中的自连接与join关联

    mysql自连接mysql有时在信息查询时需要进行对自身连接(自连接),所以我们需要为表定义别名。我们举例说明,下面是商品采购表,我们需要找到采购价格比惠惠高的... [阅读全文]
  • MySQL 元数据锁及问题排查的解决

    "元数据"是用来描述数据对象定义的,而元数据锁(metadata lock mdl)即是加在这些定义上。通常我们认为非锁定一致性读(简单select)是不加锁的…

    2024年09月04日 数据库
  • MySQL中UUID主键的优化小结

    uuid(universally unique identifier 通用唯一标识符),是一种常用的唯一标识符,在mysql中,可以利用函数uuid()来生产uuid。因为uuid…

    2024年09月04日 数据库
  • 深入理解MySQL公共表表达式

    公共表表达式(common table expressions, cte)是mysql在单一语句中执行过程中,预先定义的临时结果集。有时我们需要在一个sql中重复执行同一个子查询,…

    2024年09月04日 数据库
  • MySQL 半同步复制的实现

    一、半同步复制介绍mysql基础复制有三种模式:异步复制/同步复制/半同步复制,3种模式各有利弊,下面对各种复制模式的优缺点做个简要的介绍:异步复制(asynchronous re…

    2024年09月04日 数据库
  • MySQL实现异步复制的示例

    一、复制概述mysql的复制就是将来自一个mysql数据库服务器(主库)的数据复制到一个或多个mysql数据库服务器(从库)。其工作原理是通过binlog(二进制日志)记录事务变更…

    2024年09月04日 数据库

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com