news 2026/7/18 5:27:23

nginx黑白名单-元一软件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
nginx黑白名单-元一软件

什么是黑白名单?

黑白名单是一种用于管理和控制系统访问权限的机制。黑名单是指被禁止访问或使用的对象或资源列表,而白名单则是指被允许访问或使用的对象或资源列表。

在网络安全领域,黑白名单通常用于限制对特定网站、IP地址或应用程序的访问,以保护系统免受恶意攻击或未经授权的访问。

注意:黑白名单也可以用于过滤垃圾邮件、拦截恶意软件等。

Nginx 黑白名单

在 Nginx 中,当我们需要指定或者禁止某些 ip 访问服务时,此时可以使用黑白名单机制,Nginx 通过 allow、deny 配置项来实现黑白名单。

限制单个 IP

如果仅仅限制单个 IP,我们可以直接在 location 里面编写,例如:

# 配置工作进程数量worker_processes1;events{# 设置工作进程可以同时打开的最大连接数worker_connections1024;}http{# 引用 MIME 类型include mime.types;default_type application/octet-stream;server{listen8080;server_name localhost;location /{# 设置请求的根目录root html;# 定义将用作索引的文件index index.html index.htm;# 【关键位置】# 屏蔽 192.177.12.222 访问deny127.0.0.1;# 屏蔽 127.0.0.1 到 127.255.255.254 网段中的所有 IP 访问deny127.0.0.0/8;# 允许 192.177.44.201 访问allow192.177.44.201;# 允许 127.45.0.1 到 127.45.255.254 网段中的所有 IP 访问allow127.45.0.0/16;# 除开上述 IP 外,其他 IP 全部禁止访deny all;}}}

批量限制 IP

如果我们需要批量限制 IP,则需要创建 .conf 文件来配置,例如:

(1)在 Nginx 的 conf 目录下面创建白名单文件 white.conf,如下:

allow127.0.0.1;# 允许 127.0.0.1 访问allow192.177.12.222;# 允许 192.177.12.222 访问allow192.177.44.201;# 允许 192.177.44.201 访问allow127.45.0.0/16;# 允许 127.45.0.1 到 127.45.255.254 网段中的所有 IP 访问deny all;# 除开上述 IP 外,其他 IP 全部禁止访问

注意:你也可以将配置文件放在任何你想要的地方,然后采用绝对地址引用,如:include /webapp/white.conf

(2)在 Nginx 的 conf 目录下面创建黑名单文件 black.conf,如下:

deny192.177.12.222;# 屏蔽 192.177.12.222 访问deny192.177.44.201;# 屏蔽 192.177.44.201 访问deny127.0.0.0/8;# 屏蔽 127.0.0.1 到 127.255.255.254 网段中的所有 IP 访问

(3)最后,在 nginx 配置文件中引入,如下:

# 【目的】# 实现黑白名单,批量限制IPworker_processes1;events{worker_connections1024;}http{include mime.types;default_type application/octet-stream;# 屏蔽该文件中的所有IPinclude black.conf;server{listen8080;server_name localhost;location /{root html;index index.html index.htm;# 【关键位置】# 开放给白名单中的IPinclude white.conf;}}}

注意:同时也可以通过 ngx_http_geo_module、ngx_http_geo_module 第三方库去实现(这种方式可以按地区、国家进行屏蔽,并且提供了 IP 库)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/18 5:27:23

Flask应用CSRF防护实战:Flask-WTF核心机制与安全配置详解

1. 项目概述:为什么Flask应用必须直面CSRF风险?如果你在用Flask开发Web应用,尤其是涉及用户登录、表单提交、资金操作这些敏感功能时,有一个幽灵般的风险你绝对绕不开:跨站请求伪造,也就是CSRF。这玩意儿不…

作者头像 李华
网站建设 2026/7/18 5:27:17

LED驱动电路设计:原理、实现与优化

1. LED驱动基础与核心原理LED驱动电路的本质是电流控制装置。与传统照明不同,LED是电流型器件,其亮度与正向电流呈正相关关系。典型的LED正向电压在1.8-3.6V之间(视材料而定),但微小的电压波动就会导致电流剧烈变化。以…

作者头像 李华
网站建设 2026/7/18 5:25:59

Android Xfermode图形混合模式详解与实践

1. Xfermode基础概念解析Xfermode是Android图形系统中用于控制两个图形源混合方式的类。它定义了当绘制新图形时,如何与Canvas上已有内容进行组合。在Android UI开发中,Xfermode是实现复杂视觉效果的关键工具。1.1 核心混合模式类型Android提供了多种预定…

作者头像 李华
网站建设 2026/7/18 5:25:23

VLA模型:视觉-语言-行动统一建模的具身智能核心

1. 什么是VLA模型:从“看图说话”到“看见即行动”的范式跃迁VLA,全称Visual-Language-Action,中文直译为“视觉-语言-行动”模型。这个词最近在具身智能、机器人学和多模态AI圈子里高频出现,但很多人第一次听到时,下意…

作者头像 李华
网站建设 2026/7/18 5:25:18

Unity UI自动化测试实战:从Automated QA插件到CI/CD集成

1. 项目概述:为什么Unity UI自动化测试是开发者的“刚需”如果你正在用Unity 2019.4或更高版本开发游戏或应用,尤其是那些UI交互复杂、功能迭代频繁的项目,那么“测试”这个词对你来说,可能既熟悉又头疼。手动测试UI?那…

作者头像 李华