nginx配置访问频率
nginx可以通过limit_conn_zone和limit_req_zone两个组件来限制客户端访问服务端的目录和文件的频率和次数,能够抵挡住部分cc、ddos攻击。
限制访问频率:
http{
...
#定义一个名为allips的limit_req_zone用来存储session,大小是10M内存,
#以$binary_remote_addr 为key,限制平均每秒的请求为20个,
#1M能存储16000个状态,rete的值必须为整数,
#如果限制两秒钟一个请求,可以设置成30r/m
limit_req_zone $binary_remote_addr zone=allips:10m rate=20r/s;
...
server{
...
location {
...
#限制每ip每秒不超过20个请求,漏桶数burst为5
#brust的意思就是当每秒超过20个请求时,5个以内的请求会被延迟访问,超过5个的直接返回503
#nodelay,设置该选项,将严格使用平均速率限制请求数,超过请求频率的直接返回503
limit_req zone=allips burst=5 nodelay;
...
}
...
}
...
}
#注意配置的作用域
注意:发送请求频率高于(1000ms/20r)ms/r 直接返回503
限制并发连接数:
http{
...
#定义一个名为all_zone的limit_zone,大小10M内存来存储session,
#nginx 1.18以后用limit_conn_zone替换了limit_conn
limit_conn_zone all_zone $binary_remote_addr 10m;
...
server{
...
location {
...
limit_conn all_zone 20; #连接数限制
#带宽限制,对单个连接限数,限制带宽上限500k
limit_rate 500k;
...
}
...
}
...
}
配置访问白名单:
nginx需支持geo模块;
http{
...
geo $limited {
default 1;
127.0.0.1 0;
172.31.105.247/32 0;
include /etc/nginx/whiteip;
}
map $limited $limit {
1 $binary_remote_addr;
0 "";
}
limit_req_zone $limit zone=allips:20m rate=100r/m;
...
server{
...
location {
...
limit_req zone=allips burst=100 ;
...
}
}
/etc/nginx/whiteip:
18.195.104.195/32 0;
18.196.102.154/32 0;
54.93.227.18/32 0;
如果nginx上层还有ELB(aws)或SLB(aliyun),需在nginx配置中添加:
set_real_ip_from 172.31.0.0/16;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
#配置对于从172.31.0.0/16 这个ip段过来的请求,remote_addr的字段的值从 X-Forwarded-For 中取
nginx配置访问频率的更多相关文章
- Nginx配置访问权限
基于IP配置Nginx的访问权限 Nginx配置通过两种途径支持基本访问权限的控制,其中一种是由HTTP标准模块ngx_http_access_module支持的,通过IP来判断客户端是否拥有对Ngi ...
- nginx配置访问图片路径(windows)
简介 Nginx(("engine x")由俄罗斯的程序设计师Igor Sysoev所开发)是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.PO ...
- nginx配置访问本地静态资源
下面说说如何在windows下使用nginx作为静态资源服务器, 1.修改config目录下,这个配置文件,基本上所有的配置都在这里面做, 2.主要的配置参数如下,一些无关的参数我直接去掉了,注意,里 ...
- nginx配置访问本地资源
参考博客:https://www.cnblogs.com/xy51/p/9973326.html 需要访问路径:http://IP:10013/p1upgrade/picfiles/image73b4 ...
- kibana通过nginx配置访问用户验证
背景: 现在搭建好了efk,其中kibana是可以在网页上访问的可视化工具,搭建好的kibana默认没有访问控制权限,任何人都能访问,这样存在一些安全隐患和隐私问题.这里我把设置的访问验证过程记录一下 ...
- nginx配置访问xx.com跳转www.xx.com
二.在nginx里面配置 rewrite 规则.打开 Nginx.conf 文件找到server配置段:[以下是我的server配置段] 禁止IP地址访问 server{ listen 80 defa ...
- Nginx 配置访问静态资源
做个简单的配置: 以txt/png/mp4结尾的请求都会按照如下规则寻找返回文件 关键词: location.root location ~ \.(mp4|png|txt) { root /usr/l ...
- nginx配置访问https[自签版]
通过openssl生成证书 (1)设置server.key,这里需要设置两遍密码: openssl genrsa -des3 -out server.key 1024 (2)参数设置,首先这里需要输入 ...
- nginx配置访问黑名单-2
在Nginx服务器上屏蔽IP 1.查找要屏蔽的ip awk '{print $1}' nginx.access.log |sort |uniq -c|sort -n nginx.access.log ...
随机推荐
- java_基础_abstract抽象关键字
java中,当父类中的某些东西不确定时,可以用abstract关键字将此类变成抽象类(也就是说类并不完整,有些东西要等待子类去实现) 注意事项: 1.抽象类中的抽象方法不能有实体,格式如下 publi ...
- java常用工具包
1.国外 org.apache.commons.lang3 http://commons.apache.org/proper/commons-lang/javadocs/api-3.8.1/index ...
- 在多个平台如何安装Python
最近的一个项目,架构师米洛需要用的mqtt,服务器开发的时候,竟然用的python脚本.运行python就需要安装开发环境,好吧,百度一下就知道了大神廖雪峰.以下部分测试通过,转载记录如下. 因为Py ...
- AKA “Project” Milestone
Homework 6 (60 points)Due Thursday, April 25th at 11:59pm (via blackboard) AKA “Project” Milestone # ...
- Spring Boot(二):Spring-Data-JPA操作数据库( Hibernate)增删改查
一.Maven使用3.3.9版本或以上,选择Binary 版本 二.添加spring-data-jpa和数据库依赖,以oracle为例 三.添加连接数据库配置 四.新建model自动生成数据库表(不用 ...
- 解决Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file or directory in /system/library/cache/file.php on line 68问题
ytkah在调试opencart项目时提示Warning: unlink(/storage/cache/cache.catalog.language.1556158719): No such file ...
- Acrobat Pro DC 2019 mac中文版(pdf编辑器)
为大家准备了最新版本的Adobe Acrobat Pro DC 2019 for Mac,这是Adobe官方推出的pdf编辑器,acrobat pro dc 2019破解版可以轻松将扫描件.图像.网页 ...
- 爬取豆瓣电影排行top250
功能描述V1.0: 爬取豆瓣电影排行top250 功能分析: 使用的库 1.time 2.json 3.requests 4.BuautifulSoup 5.RequestException 上机实验 ...
- SqlServer 字段拼接
最近入职了新公司,使用的是sql server 之前因为一直使用的都是Mysql,mysql 有专用的GROUP_CONCAT()函数,那么这个就是很方便的啦,只要对结果集进行一个Group By ...
- 初识STL vector
写这个主要是当作笔记来写的,配上自己的理解加上一些测试示例; 上代码: #include<iostream>#include<cstring>#include<vecto ...