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

 更新时间:2024年09月05日 10:21:51   作者:黑马金牌编程  
访问限制是一种防止恶意访问的常用手段,可以指定同一IP地址在固定时间内的访问次数,访问控制是控制客户端对服务端的访问,并非仅限制请求次数,而是允许某些请求或者直接拒绝某些请求,本文给大家具体介绍了Nginx的访问限制与访问控制,需要的朋友可以参考下

访问限制

访问限制是一种防止恶意访问的常用手段,可以指定同一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访问限制与访问控制的资料请关注脚本之家其它相关文章!

相关文章

  • 配置nginx隐藏版本号的多种方法

    配置nginx隐藏版本号的多种方法

    在生产环境中,需要隐藏nginx等服务的版本信息,以免造成安全风险,下面小编给大家带来了两种方法,帮助大家学习配置nginx隐藏版本号的相关知识,需要的朋友可以参考下
    2022-01-01
  • Nginx安装后常用功能配置基础篇

    Nginx安装后常用功能配置基础篇

    这篇文章主要介绍了Nginx安装后常用的功能配置,为了在使用中更高效简洁,Nginx安装后通常会进行一些常用的配置,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-03-03
  • nginx下各种超时时间的配置详细指南

    nginx下各种超时时间的配置详细指南

    在Nginx中,设置超时时间主要是为了防止服务器资源被长时间占用,进而提升服务的可用性和响应速度,下面小编就为大家详细介绍一下nginx下各种超时时间的配置详细方法吧
    2025-10-10
  • 关于Nginx 命令行控制的问题

    关于Nginx 命令行控制的问题

    Nginx 是一个高性能的 Web 服务器,从 2001 年发展至今,由于 Nginx 对硬件和操作系统内核特性的深度挖掘,使得在保持高并发的同时还能够保持高吞吐量,这篇文章主要介绍了Nginx 命令行控制,需要的朋友可以参考下
    2022-10-10
  • Nginx更新SSL证书的实现步骤

    Nginx更新SSL证书的实现步骤

    本文主要介绍了Nginx更新SSL证书的实现步骤,包括下载新证书、备份旧证书、配置新证书、验证配置及遇到问题时的解决方法,感兴趣的了解一下
    2025-12-12
  • Nginx下无法使用中文URL的解决方法

    Nginx下无法使用中文URL的解决方法

    最近发现有很多的url打不开,后来仔细观察后发现是中文url的问题,所以这篇文章主要给大家介绍了Nginx下无法使用中文URL的解决方法,文中提供了两种方法供大家参考学习,需要的朋友们下面来一起看看吧。
    2017-05-05
  • 详解nginx rewrite和根据url参数location

    详解nginx rewrite和根据url参数location

    本篇文章主要是介绍了nginx rewrite和根据url参数location,有兴趣的同学可以了解以下。
    2016-11-11
  • tomcat在nginx中的配置方式

    tomcat在nginx中的配置方式

    文章介绍了如何在Linux系统上安装和配置Tomcat,并通过Nginx进行代理,首先,下载并解压Tomcat压缩包,然后启动Tomcat并查看日志,接着,配置Nginx以代理Tomcat的8080端口,并确保80端口已开放,最后,重新加载Nginx配置并测试代理是否成功
    2024-12-12
  • Nginx静态资源优化、压缩、缓存详解

    Nginx静态资源优化、压缩、缓存详解

    文章主要介绍了如何优化Nginx对静态资源的处理,包括sendfile、tcp_nopush和tcp_nodelay三个属性的配置,以及如何通过设置Gzip来压缩静态资源,此外,还详细解释了Web缓存的概念,包括客户端缓存和服务器缓存,并介绍了浏览器缓存的相关指令和执行流程
    2025-12-12
  • Nginx基于域名区分的多网站部署

    Nginx基于域名区分的多网站部署

    本文介绍了在生产环境中多网站部署时选择基于域名区分+统一使用80/443端口的优势,并解释了为什么基于端口区分方式不推荐用于生产环境,同时,还探讨了为什么80/443端口在Web服务中具有特殊地位,以及在不同场景下如何合理使用端口区分方式,需要的朋友可以参考下
    2026-05-05

最新评论