nginx 访问控制模块
截图,代码截屏均引用自慕课网nginx相关教学视频
基于用户的访问控制模块 http_access_module
基于用户登录信任的模块
- http_access_module
参数示意:address 具体的ip地址,CIDR----网段例如192.168.0 unix:一种按照socket访问的方式 all;不做任何访问限制
有allow 对应的就有 deny;显然,在http语境下或是在location语境下,产生控制的范围是不一样的

准备工作,从default.conf中复制一份副本出来 命名为access_mod.conf
对于access_mod.conf文件 nginx启动时是否会加载呢?答案是肯定的,因为打开主配置文件conf.d(如下图:)我们注意到


这意味着所有以conf为结尾的文件都会被加载
在access_mod.conf中可以做如下配置,这样一来,除了本机,任何外部网站都可以访问admin.html; deny后面跟随的是本机地址 可以通过ip138查出对应的外网地址;也可以通过ifconfig查询网卡地址
allow

deny

http_access_module带来的问题:由于客户端可能通过代理(nginx代理 或7层负载均衡 亦或是内容分发网络访问目标地址,而这时,nginx所获取到的remote_addr可能是这些代理的地址),因此http_x_forwarded_for应运而生

http_x_forwarded_for的格式如下


但作为请求头的http_x_forwarded_for 仍有可能被访问的发起方(客户端)篡改从而逃避检查,所以http自定义变量获取客户端真实的ip地址信息


htpasswd一个第三方工具,其安装,检查过程如下

再次修改由default.conf演化而来的文件 access_mod.conf文件

htpasswd插件的作用
1. htpasswd -c 创建一个名为auth_conf的密码文件,用户名为 jeson

权限提示语和相关密码校验文件的位置

在浏览器中测试,用户名为jeson

局限:用户依赖文件,效率低下,多用户时,会创建多个文件,对于论坛来说更不可思议。nginx+LUA可以解决......
或者通过nginx和LDAP打通,也就是nginx中的nginx-auth-ldap模块
nginx 访问控制模块的更多相关文章
- Nginx访问控制模块
一.Nginx访问控制模块 Nginx默认安装的模块http_access_module,可以基于来源IP进行访问控制. 1.模块安装 nginx中内置ngx_http_access_module,除 ...
- 6、架构--Nginx虚拟主机(基于多ip、端口、域名方式)、日志配置、Nginx模块(访问控制模块、状态监控模块、访问链接控制模块)
笔记 1.晨考 2.昨日问题 3.今日内容 1.Nginx虚拟主机 - 基于多IP的方式 - 基于多端口的方式 - 基于多域名的方式 2.日志配置 Nginx有非常灵活的日志记录模式,每个级别的配置可 ...
- nginx 访问频率控制
Nginx访问频率控制 HTTP服务器的吞吐率(单位时间吞吐量)通常有一个上限,尤其是普通配置的机器,在带宽够的情况下,用压测工具经常能把服务器压出翔,为了线上环境稳定性,防止恶意攻击影响到其他用户, ...
- Nginx 访问日志轮询切割
Nginx 访问日志轮询切割脚本 #!/bin/sh Dateformat=`date +%Y%m%d` Basedir="/application/nginx" Nginxlog ...
- 按日期切割nginx访问日志--及性能优化
先谈下我们需求,一个比较大的nginx访问日志,根据访问日期切割日志,保存在/tmp目录下. 测试机器为腾讯云机子,单核1G内存.测试日志大小80M. 不使用多线程版: #!/usr/bin/env ...
- 一、基于hadoop的nginx访问日志分析---解析日志篇
前一阵子,搭建了ELK日志分析平台,用着挺爽的,再也不用给开发拉各种日志,节省了很多时间. 这篇博文是介绍用python代码实现日志分析的,用MRJob实现hadoop上的mapreduce,可以直接 ...
- Python正则表达式,统计分析nginx访问日志
目标: 1.正则表达式 2.oop编程,统计nginx访问日志中不同IP地址出现的次数并排序 1.正则表达式 #!/usr/bin/env python # -*- coding: utf-8 -*- ...
- logstash收集nginx访问日志
logstash收集nginx访问日志 安装nginx #直接yum安装: [root@elk-node1 ~]# yum install nginx -y 官方文档:http://nginx.org ...
- 使用python找出nginx访问日志中访问次数最多的10个ip排序生成网页
使用python找出nginx访问日志中访问次数最多的10个ip排序生成网页 方法1:linux下使用awk命令 # cat access1.log | awk '{print $1" &q ...
随机推荐
- Android性能专项分类
性能专项分类:1.资源消耗2.启动耗时3.主要页面加载时间4.内存泄漏.抖动5.卡顿.页面渲染 一.资源消耗:CPU.内存.流量.功耗-----1.查看CPU占用率:adb shell dumpsys ...
- poj1155 TELE (树上分组背包)
题目链接:https://vjudge.net/problem/POJ-1155 题意:给定一颗以1为根的边权树,有n个结点,其中m个叶子结点,每个叶子结点有一个价值.要求从m个叶子结点中选最多的结点 ...
- Java MyBatis逆向工程,自动生成pojo,mapper
生成xml文件,文件名generator.xml <?xml version="1.0" encoding="UTF-8"?><!DOCTYP ...
- 洛谷P1603 斯诺登的密码(水题
不知道什么时候打开的,随手做掉了,没什么用...大概又熟悉了一下map吧...大概........一开始还因为没读清题没把非正规的英文表示数字存进去wa了...orz最近状态不行 题目描述 题目描述 ...
- Python与用户的交互
目录 Python与用户的交互 为什么交互 如何交互 Python2 中的交互 Python与用户的交互 为什么交互 让我们来回顾计算机的发明有何意义,计算机的发明是为了奴役计算机,解放劳动力.假设我 ...
- Hystrix服务容错保护
一.什么是灾难性雪崩效应? 造成灾难性雪崩效应的原因,可以简单归结为下述三种: 服务提供者不可用.如:硬件故障.程序BUG.缓存击穿.并发请求量过大等. 重试加大流量.如:用户重试.代码重试逻辑等. ...
- Annotation Type ManyToMany->>>>>Oracle
Example 1: // In Customer class: @ManyToMany @JoinTable(name="CUST_PHONES") public Set< ...
- 怎样在 Linux 上查看某个端口的相关信息?
比如 TCP端口 / UDP端口 / 端口占用程序的进程号 等, 这些信息都可以使用: netstat -atunlp | grep 端口号 来进行获取. 比如我们想获取 22 端口的相关信息: 这里 ...
- hdu 1215 求约数和 唯一分解定理的基本运用
http://acm.hdu.edu.cn/showproblem.php?pid=1215 题意:求解小于n的所有因子和 利用数论的唯一分解定理. 若n = p1^e1 * p2^e2 * ……*p ...
- MapReduces计数实验
实验内容 现有某电商网站用户对商品的收藏数据,记录了用户收藏的商品id以及收藏日期,名为buyer_favorite1. buyer_favorite1包含:买家id,商品id,收藏日期这三个字段,数 ...