NGINX_十八 nginx 访问控制

十八 nginx 访问控制

1 nginx 访问控制模块

(1)基于IP的访问控制:http_access_module
(2)基于用户的信任登录:http_auth_basic_module

2 基于IP的访问控制

2.1 配置语法

Syntax:allow address | CIDR | unix: | all;
default:默认无
Context:http,server,location,limit_exceptSyntax:deny address | CIDR | unix: | all;
default:默认无
Context:http,server,location,limit_except

2.2 配置测试

修改/etc/nginx/conf.d/access_mod.conf内容如下:

server {listen 80;server_name localhost;location ~ ^/admin {root /home/www/html;index index.html index.hml;deny 192.168.1.8;allow all;#deny 192.168.1.8;}
}
#需要注意:
如果先允许访问,在定义拒绝访问。那么拒绝访问不生效。
先写范围小的

虚拟机宿主机IP为192.168.1.8,虚拟机IP为192.168.1.11,故这里禁止宿主机访问,允许其他所有IP访问。
宿主机访问http://192.168.1.11/admin,显示403 Forbidden
当然也可以反向配置,同时也可以使用IP网段的配置方式,如allow 192.168.1.0/24;,表示满足此网段的IP都可以访问。

2.3 指定location拒绝所有请求

如果你想拒绝某个指定URL地址的所有请求,而不是仅仅对其限速,只需要在location块中配置deny all指令:

server {listen 80;server_name localhost;location /foo.html {root /home/www/html;deny all;}
}

2.4 局限性

remote_addr只能记录上一层与服务器直接建立连接的IP地址,若中间有代理,则记录的是代理的IP地址。
http_x_forwarded_for可以记录每一层级的IP。

1561994965370

2.5 解决方法

(1)采用别的HTTP头信息控制访问,如HTTP_X_FORWARD_FOR(无法避免被改写)
(2)结合geo模块
(3)通过HTTP自定义变量传递

3 基于用户的信任登录

3.1 配置语法

Syntax:auth_basic string | off;
default:auth_basic off;
Context:http,server,location,limit_exceptSyntax:auth_basic_user_file file;
default:默认无
Context:http,server,location,limit_except
file:存储用户名密码信息的文件。

3.2 配置示例

改名access_mod.confauth_mod.conf,内容如下:

server {listen 80;server_name localhost;location ~ ^/admin {root /home/www/html;index index.html index.hml;auth_basic "Auth access test!";auth_basic_user_file /etc/nginx/auth.conf;}
}

auth_basic不为off,开启登录验证功能,auth_basic_user_file加载账号密码文件。

3.3 建立口令文件

[root@192 ~]# yum install -y httpd-tools #htpasswd 是开源 http 服务器 apache httpd 的一个命令工具,用于生成 http 基本认证的密码文件
[root@192 ~]# htpasswd -cm /etc/nginx/auth_conf user10
[root@192 ~]# htpasswd -m /etc/nginx/auth_conf user20
[root@192 ~]# cat /etc/nginx/auth_conf 
user10:$apr1$MOa9UVqF$RlYRMk7eprViEpNtDV0n40
user20:$apr1$biHJhW03$xboNUJgHME6yDd17gkQNb0

3.4 访问测试

1561996355328

3.5 局限性

(1)用户信息依赖文件方式
(2)操作管理机械,效率低下

3.6 解决方法

(1)Nginx结合LUA实现高效验证
(2)Nginx和LDAP打通,利用nginx-auth-ldap模块
(3)Nginx只做中间代理,具体认证交给应用。

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

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

相关文章

《Windows API每日一练》5.2 按键消息

上一节中我们得知,Windows系统的按键消息有很多类型,大部分按键消息都是由Windows系统的默认窗口过程处理的,我们自己只需要处理少数几个按键消息。这一节我们将详细讲述Windows系统的所有按键消息及其处理方式。 本节必须掌握的知识点&…

解决IDEA使用卡顿的问题,设置JVM内存大小和清理缓存

解决IntelliJ IDEA中卡顿问题,可以尝试以下几个常见且有效的步骤: 1 增加IDEA的JVM内存分配: 位于IDEA安装目录的bin文件夹下,找到对应的操作系统配置文件(idea64.exe.vmoptions(Windows)或id…

Nginx日志管理之日志分析

Nginx 通常被置于服务器访问的入口,其访问日志可以全局记录用户访问的来源、响应时间,以及用户行为热点等数据,通过对访问日志的分析,可以清晰地了解用户来源、用户行为习惯及自身服务器性能等情况。借助 ELK 的高性能处理能力&am…

软件编译出现fatal error: mpi.h: No such file or directory解决办法

软件编译时,如果出现fatal error: mpi.h: No such file or directory的问题时,很大可能是你的环境变量路径没有设置好,解决思路如下: export CPATH/opt/intel/impi/2019.0.117/intel64/include:$CPATH export LD_LIBRARY_PATH/o…

nodejs的express负载均衡(续)

之前写过一篇《nodejs的express负载均衡》,给出了两种方式实现express web服务的nlb。一种是利用nodejs自带的cluster,创建多个worker进程,绑定同一个服务端口,由主进程负责监听和调度;另一种启动多个nodejs实例&#…

BFS:FloodFill算法

文章目录 FloodFill算法简介1.图像渲染2.岛屿数量3.岛屿的最大面积4.被围绕的区域总结 FloodFill算法简介 Flood Fill算法是一种用于确定与某个给定节点相连的区域的算法,常用于计算机图形学和图像处理。该算法可以用于诸如填充多边形、检测连通区域等任务。Flood …

简答分享python学习进修网站

一、网战推荐 CodeCombat 是一款网页编程游戏。这款编程游戏借鉴了游戏很多设计元素,游戏剧情十分丰富。Codecombat能够学习Python多种语言,这些语言能够运用到游戏设计、网页应用、app的开发上。 Checkio 是一个基于浏览器的游戏,你需要使…

做电池研究如何发表Nature Communications,案例分析

✨【元素魔方学术俱乐部】✨ 👩‍🏫👨‍🏫我们创建了一个学术交流群 给全国各地以及各种研究方向的硕博 和老师们提供一个交流的平台📚🧪 感兴趣的话欢迎加入 📲本公众号中回复“社群” 会自动发…

Lynred在欧洲防务展上将展出新品——“HOT”红外传感器Seegnus。

Lynred在即将举办的巴黎欧洲防务展上将展出其令人瞩目的新品——“HOT”红外传感器Seegnus。这款专为战术视觉设计的大型阵列传感器,以其紧凑的封装和高分辨率的中波红外成像能力,无疑将为航空航天、国防和商业市场带来革命性的突破。 Seegnus传感器拥有…

RX数据集成:信创生态下的平滑过渡方案

过去,众多中国企业倾向于采用国际供应商的数据集成产品与方案。其中Informatica作为行业翘楚,以其卓越性能和技术领先地位赢得了全球500强中95%企业的青睐。在中国市场上,众多企业同样信赖并采纳其解决方案。然而,随着国际环境的演…

vsfpt搭建配置文件,自用

yum install vsftpd useradd xh passwd xh为了确保用户 xh 拥有 /home/xh 目录的正确权限,可以使用以下命令: 更改目录的所有者和用户组: 确保 /home/xh 目录的所有者和用户组都设置为 xh: sudo chown -R xh:xh /home/xh设置目录权…

数据仓库的挑战

建设数据仓库是一个复杂且资源密集的过程,需要考虑多个方面。以下是建设数据仓库时常见的挑战及其详细解释: 1. 数据集成 挑战: 数据来源多样:数据来自不同的系统、数据库、文件格式(如CSV、JSON、XML)、…

威泰视信嵌入式软件工程师笔试题

威泰视信嵌入式软件工程师笔试题答题时间 45分钟 选择题 1、以下不需要编译内核的情况是 A、删除系统不用的设备驱动程序时 B、升级内核时 C、添加新硬件时 D、激活网卡 只要你代码或配置有改动,都要重新编译的,只是如果代码写成块模式的&#xff…

【LLM之RAG】RAT论文阅读笔记

研究背景 近年来,大型语言模型(LLMs)在各种自然语言推理任务上取得了显著进展,尤其是在结合大规模模型和复杂提示策略(如链式思维提示(CoT))时。然而,LLMs 在推理的事实…

.net8 blazor auto模式很爽(三)用.net8的Blazor自动模式测试,到底在运行server还是WebAssembly

Blazor自动模式到底什么时侯在运行server,什么时侯在运行WebAssembly。这个对我们来说非常重要,官方并没有很清楚地告诉我们。并且存在一些误导,让我们觉得自动模式就是不管我怎么弄,blazor都会自动识别该使用server还是WebAssemb…

【无标题】安卓app 流量

该工具可以用于安卓app 流量,内存,cpu,fps等专项内容测试,并且有整机内存,cpu对比,还可监控手机网速,app流量,数据导出等功能,重点还是免费,毕竟PerfDog收费了…

运维:k8s常用命令大全

Kubernetes是一个强大的容器编排平台,不管是运维、开发还是测试或多或少都会接触到,熟练的掌握k8s可大大提高工作效率和强化自身技能。 集群管理 1. 查看集群节点状态: kubectl get nodes 2. 查看集群资源使用情况: kubectl top nodes 3. 查看集群…

Ubuntu 安装 CloudCompare

步骤: sudo apt install flatpakflatpak install flathub org.cloudcompare.CloudCompare此时会有报错: error: No remote refs found similar to ‘flathub’执行 flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.fla…

【IDEA】Spring项目build失败

通常因为环境不匹配需要在file->projectstructure里面调整一下。

详解DAC数模转换+DAC输出模拟电压的测量比对实验程序

前言:详解DAC数模转换原理DAC输出模拟电压的测量比对实验程序(使用 DAC 通道 1 输出模拟电压,然后通过 ADC1 的通道 1 对该输出电压进行读取,并显示在 LCD 模块上面,DAC 的输出电压可以通过按键(或 USMART&…