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_except

Syntax: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_except

Syntax: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只做中间代理,具体认证交给应用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

kettle从入门到精通 第七十二课 ETL之kettle 三谈http post(含文件上传),彻底掌握参数传递

场景:群里有个小伙伴在使用http post步骤调用接口时遇到问题,postman调用正常,但是kettle中调用异常。 解决方案:既然postman调用接口正常,肯定是http post步骤中某些参数设置的不正确导致的。那就把常用的方式都梳理下…

C++11 右值引用和移动语义

目录 1.左值引用和右值引用 2.右值引用使用场景(移动语义)和意义 3.右值引用引用左值及其一些更深入的使用场景分析 4.完美转发 1.左值引用和右值引用 传统的C语法中就有引用的语法,而C11中新增了的右值引用语法特性,所以从现…

云计算考试题

Cloud ❀ 云计算-虚拟化常见的两种架构_裸金属架构和宿主型架构的区别-CSDN博客 为啥要成2 11 bcd 16 acd abcd BCD NAS为啥支持文件存储的协议 选BCD 什么是网络文件系统 选bcd 错题 选abc 选bcd 选 abd

【ARMv8/v9 GIC 系列 4.2 -- GIC CPU Interface 详细介绍】

文章目录 GIC CPU Interface 介绍CPU Interface 主要寄存器 GIC CPU Interface 介绍 A 系列处理器提供 5个管脚来实现中断,分别是: nIRQ:物理普通中断nFIQ:物理快速中断nVIRQ:虚拟普通中断nVFIQ:虚拟快速…

运算放大器(运放)积分器电路

积分器电路 运算放大器(运放)积分器电路是在图2运放反相放大器的电路上增加一个积分电容构成,该积分电容并联在运算放大器的反馈电阻上,见图1。 运算放大器(运放)反相放大器电路 设计目标 输入fMin输入f0dB输入fMax输出VoMin输出VoMax电源Vcc电源Vee1…

【JS重点19】this指向问题总结

目录 一:普通函数this指向 普通函数在严格模式下: 二:箭头函数this指向 this指向说明 不适用this情况 三:改变this指向 1 call() 语法格式: 作用: 2 apply() 语法格式: 作用&#x…

C#.net6.0语言+B/S架构+前后端分离 手术麻醉信息管理系统源码

C#.net6.0语言+B/S架构前后端分离 手术麻醉信息管理系统源码 什么是手术麻醉信息管理系统 满足医院等级评级需求 满足电子病历评级需求 满足科室需求 术前 1、患者术前评估/诊断 2、术前讨论制定手术方案 3、手术准备 4、术前准备 术中 1、送手术室 2、麻…

oracle12c到19c adg搭建(五)dg搭建后进行切换19c进行数据字典升级

一、备库切主库升级 12c切换为19c主库的时候是由低版本到高版本所以cdb和pdb的数据字典需要进行升级才可以让数据与软件版本兼容。 1.1切换 SQL> alter database recover managed standby database finish; Database altered. SQL> alter database commit to switcho…

基于 NXP LS1046 +FPGA系列 CPCI 架构轨道交通专用板卡

基于 NXP LS1046 系列 CPCI 架构轨道板卡 该产品是一款 CPCI 无风扇架构的高可靠性板卡,CPU 选用 NXP LS1046A 系统平台,支持嵌入式 Linux 或者标准 Ubuntu Linux 、凝思等操作系统,轨道交通 EMC 及宽温级别设计,板载多路 M12 高速…

SQLite扩展插件终极集合

作为一个嵌入式数据库引擎,SQLite 与其他数据库管理系统相比,缺少了一些功能。不过 SQLite 提供了一个扩展机制,因此我们可以在网络上找到大量的 SQLite 插件。 今天我们介绍的这个插件叫做 sqlean,它打包了许多流行的 SQLite 扩…

【windows】字体安装手册

windows字体安装手册 1 下载字体文件 百度搜索XXX字体ttf文件进行下载 附:宋体gb2312下载地址: https://www.downza.cn/soft/7780.html 2 字体安装 1.搜索字体 2.将下载的ttf文件拖拽添加 3.关闭办公软件重新打开后,outlook、word、…

装备制造业CRM解决方案

01、数字化转型驱动企业,向“以客户需求驱动创新生产”的智能制造业转变 我国装备制造业经过多年的发展,取得了令人瞩目的成就,形成了门类齐全、具有相当规模和一定水平的产业体系;主要包含通用设备、专用设备、电气机械、交通运…

GPT 模型简史:从 GPT-1 到 GPT-4

文章目录 GPT-1GPT-2GPT-3从 GPT-3 到 InstructGPTGPT-3.5、Codex 和 ChatGPTGPT-4 GPT-1 2018 年年中,就在 Transformer 架构诞生⼀年后,OpenAI 发表了⼀篇题 为“Improving Language Understanding by Generative Pre-Training”的论文,作者…

DS知识点总结--线性表定义及顺序表示

数据结构知识点汇总(考研C版) 文章目录 数据结构知识点汇总(考研C版)二、线性表2.1 线性表的定义和操作2.1.1 线性表的定义2.1.2 线性表的基本操作 2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表上的基本操作的实现 二、线性表 2.1 线性表的定义和操作 2.1.1 线性表的…

阿里云如何实现express的自动化部署(保姆级教程)

本篇文章将详细介绍一下阿里云如何实现express的自动化部署,作者本人总结的保姆级教程!!! 首先去阿里云官网 (阿里云-计算,为了无法计算的价值) 搜索函数计算fc 如果没有开通过选择免费开通,…

RockChip Android12 Settings一级菜单

一:概述 在之前的文章中对Android8.1 Settings的流程进行了说明,本章将针对Android12 Settings一级菜单的加载逻辑进行详细说明,Settings版本之间的差异不是很大,有兴趣的同学可自行学习,本文不在做赘述。 Android8.1 Settings说明:RockChip Android8.1 Settings-CSDN博…

在win10 上使用ssh连接到树莓派上

在win10 上使用ssh连接到树莓派上 树莓派上的设置 启用ssh 启用VCN和SSH,这样可以使用VNC和SSH远程。 win10 上的设置 安装ssh客户端 按下win键输入"应用和功能" 如果没有安装就搜索:OpenSSH客户端,安装。 连接到树莓派…

STM32---SPI通信协议(小白入、含源码)

写在前面:在单片机的学习过程中,各种通信协议的学习是必不可少的,在前面我们学习了串口通信、IIC通信,本节我们来认识一下SPI通信协议。包括其SPI基本概念、NORFLASH芯片的介绍以及相关的例程实验。 目录 一、SPI介绍 1.1什么是…

socket--IP端口爆破域名解析

免责声明:本文仅做技术交流与学习... 目录 IP端口爆破 域名解析爆破 IP端口爆破 #端口扫描: #获取扫描的 IP和端口 #连接 IP和端口(socket) #判断连接状态-开放和关闭# import socket # # 加入参数模式 # import os # ssocket.socket() # s.connect((…

3.1、前端异步编程(超详细手写实现Promise;实现all、race、allSettled、any;async/await的使用)

前端异步编程规范 Promise介绍手写Promise(resolve,reject)手写Promise(then)Promise相关 API实现allraceallSettledany async/await和Promise的关系async/await的使用 Promise介绍 Promise是一个类,可以翻…