Nginx中想对IP做访问限制怎么做?access模块来帮忙-09

在一个请求闯过之前的postread阶段,rewrite阶段,find_config阶段,preaccess阶段后终于来到了Access阶段了。

Access阶段主要就是控制请求是否可以继续向下访问的。

在这个阶段第一个要经过的就是Access模块。

想对IP 进行访问控制?可以在Access模块 控制哪些IP可以访问一些URL,哪些IP不可以访问一些URL。

生效阶段:NGX_HTTP_ACCESS_PHASE阶段

模块:http_access_module

生效范围:进入access阶段前不生效。也就是说虽然你限制了某ip的访问,但是前面的limit_conn,limit_req还是会生效的。

默认编译进Nginx的,如果不想编译进Nginx,可以通过
--without-http_access_module来禁用该模块。

语法: allow $ip | CIDR | unix:|all;
上下文:HTTP,server,location,limit_except

语法: deny $ip | CIDR | unix:|all;
上下文:HTTP,server,location,limit_except

示例:

location / {
    deny 192.168.1.1;  // 拒绝某个ip的访问
    allow 192.168.1.0/24;   // 允许一段地址的访问
    allow 2001:0db8::/32;  // 还可以跟IPv6的格式
    deny all;   // 拒绝所有
}




需要注意的是 这几条里是顺序执行的,当满足到其中一条就会break了。

Access模块是一种非常简单地控制用户访问的一种方法。对于我们控制一些服务的访问却是非常有用的。

你学废了吗?

#Nginx##程序员#

相关文章

nginx配置之nginx中的“防盗”配置

一般我们使用nginx常用的就那么几项,简单代理、反向代理、代理转发、负载均衡、重定向,等等。但是有时候又不得不进行另外的一些配置,下面介绍几种"防盗"配置。爬虫 User-Agent...

确保 Nginx 网络服务器的安全

在数字时代,网络安全已成为一个亟待解决的问题。随着网络攻击的增加,确保网络服务器安全对保护敏感数据和维护网站完整性至关重要。本博文将指导你如何配置 Nginx(一种流行的开源网络服务器软件),以保护服...

一文搞懂!7种常见的限流方式!

在实际应用中,每个系统或者服务都有其处理能力的极限(瓶颈),即便是微服务中有集群和分布式的夹持,也不能保证系统能应对任何大小的流量,因此,系统为了自保,需要对处理能力范围以外的流量进行“特殊照顾”(比...

从开发到上线:Vite 中资源路径解析与工程化解决方案

在现代前端开发中,Vite 已经成为了一个备受欢迎的构建工具。然而,当涉及到静态资源(如字体、图片等)的路径解析时,开发者常常会遇到一些棘手的问题。特别是在不同的开发和生产环境中,路径解析的行为可能...

nginx upstream节点健康检查

1、前提条件编译nginx时增加nginx_upstream_check_module模板git地址:https://github.com/yaoweibin/nginx_upstream_check...