【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的执行部分,搞懂从“代码”到“执行”的过程。开启新的篇章之前,你也许会有一个疑惑:我…

【Python】 XGBoost vs LightGBM:两大梯度提升框架的对比

原谅把你带走的雨天 在渐渐模糊的窗前 每个人最后都要说再见 原谅被你带走的永远 微笑着容易过一天 也许是我已经 老了一点 那些日子你会不会舍不得 思念就像关不紧的门 空气里有幸福的灰尘 否则为何闭上眼睛的时候 又全都想起了 谁都别说 让我一个人躲一躲 你的承诺 我竟然没怀…

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

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

tldk之tle简单记录

文章目录 1.tle简介2.tle处理tcp3.tle处理udp4.tle封装包头 项目中遇到了tldk中tle的使用,不太熟悉,这里记录一下,方便以后回顾 tldk源码位置: tldk源码 简单理解:这里我们项目大概dpdk从网卡收到数据包之后&#xff…

解决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…

vue-router配置路由重定向不生效问题

概述 在做前端vue项目测试时&#xff0c;发现在路由配置中配置访问地址“http://ip:port/” 重定向到某个地址时&#xff0c;界面没有显示重定向后的地址。 能保证的是我的vue写法绝对没错。 简要代码 App.vue: <template><div id"app"><rout…

SQL注释方法 -- 单行注释/多行注释

三种注释方法 # 注释同行后面的内容&#xff1b; /* */ 注释中间的内容&#xff0c;可多行&#xff1b; -- 行注释&#xff0c;-- 后必须加空格。 # 注释同行后面的内容&#xff1b;/* 注释中间的内容&#xff0c; 可多行&#xff1b; */ -- 行注释&#xff0c;-- 后…

Django之Ajax实战笔记--城市级联操作

1. 项目架构搭建 1.1 创建项目tpdemo,创建应用myapp # 创建项目框架tpdemo$ django-admin startproject tpdemo$ cd tpdemo# 在项目中创建一个myapp应用$ python manage.py startapp myapp# 创建模板目录$ mkdir templates$ mkdir templates/myapp$ cd ..$ tree tpdemotpdemo…

HTTP的由来以及发展史

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

Sip协议(一)

Sip协议(一) 本文主要介绍sip协议 1: 简介 ​ SIP&#xff08;Session Initiation Protocol&#xff0c;会话发起协议&#xff09;是一种应用层协议&#xff0c;它被广泛应用于VoIP&#xff08;Voice over Internet Protocol&#xff0c;互联网语音通信&#xff09;中。 ​…

返回枚举类给前端

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…

在UbuntuLinux系统上安装MySQL和使用

前言 最近开始计划在Ubuntu上写一个webserver的项目&#xff0c;看到一些比较好的类似的项目使用了MySQL&#xff0c;我就打算先把环境搞好跑一下试试&#xff0c;方便后面更进一步的学习。其实在本机windows上我已经有一个mysql&#xff0c;不过 在Unbuntu上安装MySQL 首先…

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><…