【Nginx <末>】Nginx 基于 IP 地址的访问限制

目录

👋前言

📫一、限制 IP 可以实现哪些功能

👀二、 项目实现

        2.1 访问控制实现

        2.2 Nginx 配置中指定 IP 地址

💞️三、章末


👋前言

        小伙伴们大家好,前面一段时间学习了 Nginx 的相关知识,也是在本地安装启动服务器之后,通过具体项目测试了反向代理和负载均衡的功能实现,接着来看另一个功能,通过 IP 地址限制访问,之前的文章链接如下:

【Nginx <一>⭐️】Nginx 的初步了解以及安装使用-CSDN博客

【Nginx <二>⭐️⭐️】Nginx 的反向代理使用-CSDN博客

【Nginx <三>⭐️⭐️⭐️】Nginx 负载均衡使用-CSDN博客

📫一、限制 IP 可以实现哪些功能

        通过在 Nginx 中限制部分 ip 可以实现服务器安全性,避免恶意访问等以下功能:

  1. 访问控制:限制特定 IP 地址或 IP 地址范围对服务器访问,增强系统安全性。

  2. 防止恶意攻击:通过禁止已知的恶意 IP 地址,可以减少如 DDoS 等攻击风险

  3. 地理位置限制:根据 IP 地址还可以限制特定地理区域的访问,例如限制只允许部分地区的用户访问。

  4. 内部网络访问:只允许内部网络的 IP 地址访问,确保服务仅对内部员工可用。

  5. 访问限制:根据需要设置白名单或黑名单,限制特定 IP 地址的访问。

  6. 流量控制:限制来自特定 IP 地址的请求频率,保护服务器资源不被耗尽。

👀二、 项目实现

        2.1 访问控制实现

        本地简单的模拟下,限制指定 Ip 访问

        环境准备:可启动的 Nginx 服务,简单的可运行项目,测试接口,这里使用的是前几篇测试的项目

        2.2 Nginx 配置中指定 IP 地址

        2.2.1 粗暴的限制所有 ip 均不能访问

        再次访问页面会出现 forbidden 提示,说明被限制访问,结果如下:

        

        2.2.2 限制只有本地可以访问

        这里通过配置 allow 只允许 127.0.0.1 访问

        注: allow 和 deny 字段的先后顺序不能乱,这里如果是先 deny 再 allow 则不起作用,限制全部 Ip,本地还是无法访问

        

        2.2.3 处理多个 ip 

        设置多个 Ip 访问也是通过 allow ,deny 属性配置,这里就不做演示了,配置大概如下:

// 设置白名单
location / {allow 192.168.1.66;allow 192.168.1.67;deny all;...}// 设置黑名单location / {deny 192.168.1.66;deny 192.168.1.67;allow all;...}

        2.2.4 处理 Ip 地址段

        根据客户端的IP地址是否在192.168.1.0/24网段内,允许是否访问

location / {allow 192.168.1.0/24;deny all;...}

💞️三、章末

        有关 Nginx 的自我学习就先到这篇文章了,因为时间关系以及工作中使用到的程度,后面有时间再学习更深层次的吧。

        文章到这里就结束了~ 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/16376.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实现排行榜之Mysql的 OrderBy方法

排行榜之Mysql OrderBy实现 1、排行榜系统的功能点 数据收集与计算 排名规则 实时性 可视化展示 周期性更新 2、排行榜系统基本功能要素 MySQL实现方案 数据量较小,业务场景比较简单。可直接使用 新建表 CREATE TABLE leaderboard( id BIGINT UNSIGNED NOT …

《Python源码剖析》之pyc文件

前言 前面我们主要围绕pyObject和pyTypeObject聊完了python的内建对象部分,现在我们将开启新的篇章—python虚拟机,将聚焦在python的执行部分,搞懂从“代码”到“执行”的过程。开启新的篇章之前,你也许会有一个疑惑:我…

泰拉瑞亚从零开始的开服教程

前言 本教程将讲诉使用Linux系统搭建泰拉瑞亚服务器(因为网上已经有很完善的windows开服教程了),使用的Linux发行版是Debian11,服务端使用的程序是TShock,游戏版本是1.4.4.9 所需要准备的 一台服务器(本教程使用的是…

解决Jupyter运行代码显示Kernel Restarting的错误

在Jupyter notebook上运行代码时发现如下错误: 使用VS Code运行在日志表中发现错误存在: 它表明在初始化"libiomp5md.dll"库时发生问题,因为该库已经被初始化过了,这个错误可能是由于程序中重复初始化OpenMP库导致的&am…

深入探索C++ Vector容器:灵活的动态数组秘籍

目录 ​编辑 引言 一、初识vector:构造与初始化 二、动态管理:添加与删除元素 三、访问与遍历:多种方式直达元素 四、容量与大小:动态调整的艺术 五、进阶技巧:高效运用vector 结语 引言 在C编程的世界里&…

驱动命令之insmod depmod modprobe rmmod modinfo lsmod

insmod命令 insmod需指定所需加载模块的路径&#xff0c;且只加载所指定的模块&#xff0c;如果所指定的模块依赖于其他模块&#xff0c;insmod不会自动添加&#xff1b; 语法 insmod [-fkmpsvxX][-o <模块名称>][模块文件][符号名称 符号值] 参数说明&#xff1a; -f…

微信小程序如何跳转微信公众号

1. 微信小程序如何跳转微信公众号 1.2. 微信公众号配置 登录微信公众号&#xff0c;点击【小程序管理】&#xff1a;   点击【添加】&#xff1a;   点击【关联小程序】&#xff1a;   输入小程序进行关联&#xff1a; 1.2. 微信小程序配置 登录微信小程序&#xf…

HTTP的由来以及发展史

HTML&HTML5的学习探索 01、Html的由来和发展史 01-01、Html的由来 HTML的英文全称是 Hypertext Marked Language&#xff0c;即超文本标记语言。HTML是由Web的发明者 Tim Berners-Lee&#xff08;蒂姆伯纳斯李&#xff09;于1990年创立的一种标记语言&#xff0c; 他是万…

返回枚举类给前端

1. 前言 在实际开发过程中&#xff0c;前端的下拉框或者单选按钮的内容通常的需要和后端匹配的&#xff0c;故一般会由后端将下拉框的内容或单选框的内容传给前端&#xff0c;而这些内容在后端一般是由枚举类存储的&#xff0c;如果后端直接返回枚举类&#xff0c;返回结果将会…

K-means聚类算法详细介绍

目录 &#x1f349;简介 &#x1f348;K-means聚类模型详解 &#x1f348;K-means聚类的基本原理 &#x1f348;K-means聚类的算法步骤 &#x1f348;K-means聚类的优缺点 &#x1f34d;优点 &#x1f34d;缺点 &#x1f348;K-means聚类的应用场景 &#x1f348;K-mea…

SQL Server2019安装步骤教程(图文)_最新教程

一、下载SQL Server2019 1.到微软官网下载SQL Server Developer版本&#xff0c;官网当前的2019版本下载需要注册账号。 不想注册的朋友&#xff0c;可以选择从网盘下载&#xff1a;点击此处直接下载 2.下载之后先解压&#xff0c;解压后执行exe安装程序。打开之后的界面如下…

学 Java 具体能干什么?

学习 Java 后&#xff0c;你可以从事许多不同的工作和项目&#xff0c;涵盖了广泛的应用领域。以下是一些具体的应用场景和工作方向&#xff1a; 1. 企业级应用开发 Java 是企业级应用开发的首选语言之一&#xff0c;特别适合开发大规模、分布式、多层次的企业应用程序。 Jav…

ai - RAG

RAG & web <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>ChatGPT 应用页面</title><…

1960-2022年世界银行WDI面板数据(1400+指标)

1960-2022年世界银行WDI面板数据&#xff08;1400指标&#xff09; 1、时间&#xff1a;1960-2022年 2、来源&#xff1a;世界银行WDI 指标&#xff1a;包括健康、公共部门、农业与农村发展、城市发展、基础设施、外债、性别、援助效率、教育、气候变化、环境、社会保护与劳…

【Python从入门到进阶】55、使用Python轻松操作Mysql数据库

一、引言 1、MySQL数据库简介 MySQL是一个开源的关系型数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;它使用了一种名为Structured Query Language&#xff08;SQL&#xff09;的查询语言来管理数据。MySQL因其高性能、可扩展性、易用性和稳定性而广受欢迎&#x…

ARM+FPGA+NVIDIA AI摄像头软硬件定制

拥有资深ISP图像技术团队&#xff0c;是英伟达、地平线等合作伙伴&#xff0c;我们的团队掌握目前市面上大部分车载平台的ISP图像画质服务能力&#xff0c;能自主开发图像ISP和增强算法。我们具有多名经验丰富光学设计专家&#xff0c;掌握车载模组光学设计能力&#xff0c;资深…

入门五(项目介绍及登录需求)

软件缺陷判定标准 项目中缺陷的管理流程 使用Excel对于缺陷进行管理 使用工具管理缺陷 一、项目背景 传智作为一个IT教育机构&#xff0c;拥有自己开发且实际运营的产品&#xff1b; 将开发和运营的技术作为授课的内容&#xff0c;对于学员而言学到的都是一手的真实案例和…

类的继承和方法重载

想象一下&#xff0c;有一个相亲想爱的一家人家族树。在这个家族树中&#xff0c;有一个祖先&#xff08;父类&#xff09;&#xff0c;它拥有一些基本的特征和行为&#xff0c;比如家族的传统、姓氏、某些共同的技能或知识。 现在&#xff0c;这个祖先有多个后代&#xff08;…

vivado 设计连接性

设计连接性 IP集成商提供设计师协助&#xff0c;帮助您完成连接过程 设计。图3显示了MHS的一个示例&#xff0c;图4显示了设计帮助 可在IP集成商中获得 地址映射 在XPS中&#xff0c;无论主机访问从机IP&#xff0c;每个从机都有相同的地址。IP integrator为基于master的寻址提…

【C++课程学习】:命名空间的理解(图文详解)

&#x1f381;个人主页&#xff1a;我们的五年 &#x1f50d;系列专栏&#xff1a;C课程学习 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 &#x1f4f7;1.命名冲突 &#x1f4f7;2.重定义 &#x1f4f7;3.命名空间 &#x1f37a;命名空间可…