Nginx--用户认证&&访问控制&&限速&&状态访问
一 用户认证
某些网页只希望给特定的用户访问,可以设置用户认证,使用户访问时需要进行身份认证,只有认证通过才可访问网页
location / {
root html;
index index.html index.htm;
auth_basic "haha"; #服务器描述信息
auth_basic_user_file /usr/local/nginx/passwd.db; #存放用户和密码的文件
}
#下载命令
[root@localhost ~]# yum provides htpasswd
[root@localhost ~]# yum -y install httpd-tools-2.4.6-95.el7.centos.x86_64
#设置用户及密码
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db user1
New password:
Re-type new password:
Adding password for user user1

二 访问控制
作用同用户认证,对访问的客户端进行限制,可与用户认证一起使用
location / {
root html;
index index.html index.htm;
allow 192.168.10.0/24; #允许192.168.10网段的访问,可写固定ip(做实验先拒绝198网段访问)
deny all; #拒绝所有用户访问,优先级从上至下
}
nginx -s reload

三 限速
nginx限速可以通过 ngx_http_limit_conn_module 和 ngx_http_limit_req_module 模块来实现限速的功能
1 ngx_http_limit_conn_module 主要限制下载速度
并发连接限制
http
{
...
limit_conn_zone $binary_remote_addr zone=aming:10m; #定义一个内存区块索引aming,大小为10m,它以$binary_remote_addr作为key
...
server
{
...
limit_conn aming 10; #定义针对aming这个zone,并发连接为10个(单个IP的并发最多为10个)
...
}
}
速度限制
location / {
root html;
index index.html index.htm;
limit_rate_after 512k; #当文件下载到指定大小之后开始限速(以下两个参数对每个请求限制)
limit_rate 150k; #限制下载速度为150k
}
2 ngx_http_limit_req_module 主要限制请求数
limit_req_zone
语法: limit_req_zone $variable zone=name:size rate=rate;
默认值: none
配置段: http 设置一块共享内存限制域用来保存键值的状态参数。 特别是保存了当前超出请求的数量
键的值就是指定的变量(空值不会被计算)
如limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; 说明:区域名称为one,大小为10m,平均处理的请求频率不能超过每秒一次,键值是客户端IP
使用$binary_remote_addr变量, 可以将每条状态记录的大小减少到64个字节,这样1M的内存可以保存大约1万6千个64字节的记录
如果限制域的存储空间耗尽了,对于后续所有请求,服务器都会返回 503 (Service Temporarily Unavailable)错误
速度可以设置为每秒处理请求数和每分钟处理请求数,其值必须是整数
即如果需要指定每秒处理少于1个的请求,2秒处理一个请求,可以使用 “30r/m”
limit_req
语法: limit_req zone=name [burst=number] [nodelay];
默认值: —
配置段: http, server, location 设置对应的共享内存限制域和允许被处理的最大请求数阈值
如果请求的频率超过了限制域配置的值,请求处理会被延迟,所以所有的请求都是以定义的频率被处理的
超过频率限制的请求会被延迟,直到被延迟的请求数超过了定义的阈值
这时,这个请求会被终止,并返回503 (Service Temporarily Unavailable) 错误 这个阈值的默认值为0。如:
limit_req_zone $binary_remote_addr zone=aming:10m rate=1r/s;
server {
location / {
limit_req zone=aming burst=5;
}
} 限制平均每秒不超过一个请求,同时允许超过频率限制的请求数不多于5个 如果不希望超过的请求被延迟,可以用nodelay参数,如: limit_req zone=aming burst=5 nodelay;
3 设置白名单
如果是针对公司内部IP或者lo(127.0.0.1)不进行限速,需要用到geo模块
例:把127.0.0.1和192.168.198.0/24网段设置为白名单
http {
geo $limited {
default 1;
127.0.0.1/32 0;
192.168.100.0/24 0;
}
map $limited $limit {
1 $binary_remote_addr;
0 "";
}
limit_req_zone $limit zone=aming:10m rate=1r/s;
server {
location / {
limit_req zone=aming burst=5;
}
}
}
四 状态访问
主要用于对服务器的监控,通过访问这个网页得知nginx的连接的相关信息,可设置只允许管理员访问
location = /status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
Active connections: 2 #活动连接数
server accepts handled requests #总共连接数 成功创建n次握手(相等表示中间没有失败) 处理了n个请求
13 13 20
Reading: 0 Writing: 1 Waiting: 1 #读取到客户端的Header信息数 返回给客户端的Header信息数
#Waiting:开启keep-alive的情况下,这个值等于active - (reading + writing),意思就是Nginx说已经处理完正在等候下一次请求指令的驻留连接

Nginx--用户认证&&访问控制&&限速&&状态访问的更多相关文章
- Linux centosVMware Nginx安装、 默认虚拟主机、Nginx用户认证、Nginx域名重定向
一. Nginx安装 cd /usr/local/src wget http://nginx.org/download/nginx-1.12.1.tar.gz 版本在http://nginx.org/ ...
- nginx用户认证与htpasswd命令
最近在搭建ELK,然后ELK的kibana界面想添加一个访问限制,看到kibana有个插件x-pack,本来想用用,发现是收费的,就放弃了,然后就想着想配置下nginx的认证访问来实现简单的访问登陆. ...
- nginx的安装 、Nginx默认虚拟主机、nginx用户认证、nginx 域名重定向
1.nginx:官网:www.nginx.org 下载:wget -c http://nginx.org/download/nginx-1.14.0.tar.gz解压:tar -zxvf nginx ...
- Nginx安装、默认虚拟主机、Nginx用户认证和域名重定向
6月7日任务 12.6 Nginx安装12.7 默认虚拟主机12.8 Nginx用户认证12.9 Nginx域名重定向 扩展nginx.conf 配置详解 http://www.ha97.com/51 ...
- Nginx 用户认证
访问一些比较私密的页面 ( 如管理后台,数据后台 ) 时,我们就可以设置访问该页面时需要使用用户名和密码进行验证,这就是用户认证 [root@localhost ~]$ cat /usr/local/ ...
- Nginx用户认证配置方法详解(域名/目录)
Nginx超级强大它可以单独为一个域名设置用户认证,方法也很简单我们只要生成用户认证的用户名和密码,然后再Nginx添加auth认证配置即可 Nginx可以为某一个域名单独加用户认证,具体做法如下: ...
- nginx用户认证配置( Basic HTTP authentication)
ngx_http_auth_basic_module模块实现让访问着,只有输入正确的用户密码才允许访问web内容.web上的一些内容不想被其他人知道,但是又想让部分人看到.nginx的http aut ...
- Apache配置--用户认证(针对目录访问)-update2015-05-02
通过Apache配置可以限制用户对目录的访问,会弹出像phpadmin一样的登陆框. ========================================================= ...
- Nginx安装 默认虚拟主机 Nginx用户认证 Nginx域名重定向
Nginx安装 cd /usr/local/src (http://nginx.org/en/download.html) wget http://nginx.org/download/nginx-1 ...
- nginx用户认证配置( Basic HTTP authentication)及认证原理和实现
https://blog.csdn.net/guyue35/article/details/53906843
随机推荐
- JS逆向实战26——某店ua模拟登陆
声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标 目标网站 aHR0c ...
- Docker安装与教程-Centos7(一)
复现漏洞时,经常要复现环境,VMware还原太过麻烦,所以学习docker的基本操作也是必要的 Docker三要素-镜像.容器.仓库 操作系统:Centos7 官方教程文档 1.Docker的安装与卸 ...
- python列表之索引及len()函数
我们在刚开始使用列表的时候,经常会遇到这种错误 list_1 = ['one', 'two', 'three', 'four', 'five'] print(list_1[5]) 这段代码看上去是没有 ...
- tortoiseGit教程(常用图文教程)
需求: gitTorise是git的比较好用的一个图形化工具,本文目的在于对tortoiseGit常见使用进行一个总结. 对于git常见的使用有: 1. 建立仓库 2. 提交代码 3. 更新代码 4. ...
- 使用C#将几个Excel文件合并去重分类
需要将几个Excel表格里面的数据去重,然后将每个站点的数据另存为一张Sheet上. 几个表格如下所示: 实现效果如下所示: 具体实现 需要使用EPPlus操作Excel 安装EPPlus如下所示: ...
- 叮咚,你的微信年度聊天报告请查收「GitHub 热点速览」
本周热点项目 WeChatMsg 是一个微信记录提取工具,据说它还能帮你分析聊天记录.生成你的年度聊天报告.而又到了年底,部分不幸的小伙伴要开始写年度总结了,这时候 self-operating-co ...
- [THUPC 2023 初赛] 背包
题目描述 本题中,你需要解决完全背包问题. 有 \(n\) 种物品,第 \(i\) 种物品单个体积为 \(v_i\).价值为 \(c_i\). \(q\) 次询问,每次给出背包的容积 \(V\),你需 ...
- logback日志颜色设置
resources下创建logback-spring.xml配置文件,名字必须要叫这个!!! <?xml version="1.0" encoding="UTF-8 ...
- 【内核】ELF 文件执行流程
# ELF 文件分类 Linux中,ELF文件全称为:Executable and Linkable Format,主要有三种形式,分别是: 可执行文件 动态库文件(共享文件 .so) 目标文件(可重 ...
- 在Linux服务器上装jenkins(方式一:war包)
官网下载jenkins https://www.jenkins.io/zh/download/ 官网下载太慢,可以去清华镜像下载(百度搜索:清华镜像) 下载的文件是jenkins.war 把安装文件放 ...