Nginx-限制汇总
http块
limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_zone $server_name zone=connperserver:10m; limit_req_zone $binary_remote_addr zone=reqperip:10m;
limit_req_zone $server_name zone=reqperserver:10m;
limit_req_zone $http_x_forwarded_for zone=qps2:10m rate=2r/s;
limit_req_zone $http_x_forwarded_for zone=qps3:10m rate=3r/s;
limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s; #支持多个变量,比如限制同一 IP 访问同一 Url 的频率
要限制连接,必须先有一个容器对连接进行计数,在http段加入如下代码:"zone=" 给它一个名字,可以随便叫,这个名字要跟后面的 limit_conn 一致,$binary_remote_addr, 用二进制来储存客户端的地址,1m 可以储存 32000 个并发会话,也可以用其他 Nginx 变量。
限制请求数同限制连结束,但是后面 rate=2r/s,即漏桶原理,表示每秒只处理 2 个连接。定义一个漏桶,滴落速率 2 req/sec,桶空间10m,10M能保持大约160000个(IP)状态。
server块
limit_conn perip ; #每个IP最大连接数为8
limit_req zone=qps2 burst= nodelay; #速率qps=,峰值burst=,不延迟请求,直接处理请求或者返回503
limit_req zone=qps2 burst=; #速率qps=,峰值burst=,延迟请求,严格按照漏桶速率qps=1处理每秒请求,在峰值burst=5以内的并发请求,会被挂起,延迟处理,超出请求数限制则直接返回503,客户端只要控制并发在峰值[burst]内,就不会触limit_req_error_log
limit_rate 100k; #是对每个连接限速100k。这里是对连接限速,而不是对IP限速!如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate * 2
白名单
文件: nginx/conf/limit/whiteip.conf
127.0.0.1 ; #白名单: 127.0.0.1
172.16.0.0/ ; #白名单 172.16.0.0 ~ 172.16.255.255
192.168.0.0/ ; #白名单 192.168.0.0 ~ 192.168.0.255
文件 nginx/conf/limit/limit_zone.conf
#geo [$address] $variable
#$address变量默认 $remote_addr,如果 $address 的值不能代表一个合法的IP地址,那么nginx将使用地址“255.255.255.255”。
geo $whiteiplist {
default ;
include limit/whiteip.conf;
} map $whiteiplist $limit {
$binary_remote_addr;
"";
} limit_req_zone $limit zone=perreq:10m rate=8r/s; #除了白名单外的IP每秒最多处理 个请求
limit_conn_zone $limit zone=perip:10m; #limit_conn_zone和limit_req_zone指令对于键为空值的将会被忽略,从而实现对于列出来的IP不做限制
spider 限制参考
limit_req_zone $anti_spider zone=one:10m rate=10r/s;
if ($http_user_agent ~* "googlebot|bingbot|Feedfetcher-Google") {
set $anti_spider $http_user_agent;
}
Nginx-限制汇总的更多相关文章
- nginx错误汇总
一.Nginx出现413 Request Entity Too Large错误解决方法 Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现, ...
- nginx资料汇总
nginx docker 中的一些目录和 windows下是不同的, 静态内容目录: /usr/share/nginx/html 配置文件目录: /etc/nginx 日志输出目录: /var/log ...
- Nginx 错误汇总
1. Upstream timed out (110: Connection timed out) while reading response header from upstream 这种情况主要 ...
- Web前端必备-Nginx知识汇总
一.Nginx简介 Nginx是一个高性能.轻量级的Web和反向代理服务器, 其特点是占有内存及资源少.抗并发能力强. Nginx安装简单.配置简洁.启动快速便捷.支持热部署.支持 SSL.拥有高度模 ...
- apache&nginx资料汇总
http://liudaoru.iteye.com/blog/336338 aquid:http://os.51cto.com/art/201009/225813.htm 数据库各种讲座:http:/ ...
- Ubuntu18.04下配置Nginx+RTMP服务器,实现点播/直播/录制功能
2019.3.22更新 最新的nginx-1.15.9可与openssl1.1.1兼容了 以下原文: 这个东西我眼馋挺久了,最近终于试玩了一下,感觉很好玩,在搭建的过程在也遇到一些坑,这里总结一下 安 ...
- Nginx关联php安装及启动
Nginx 1.10.2 php 5.6.30 [root@nginx local]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (C ...
- 基于LNMP的Zabbbix之Zabbix Server源码详细安装,但不给图
Zabbix Server安装 看到那里有错或者有什么问题的话,求指点 邮箱:losbyday@163.com 上一篇PHP源码安装参见基于LNMP的Zabbbix之PHP源码安装:https://i ...
- nginx几个知识点汇总
WHY? 为什么用Nginx而不用LVS? 7点理由足以说明一切:1 .高并发连接: 官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2 - 3 万并发连接数.?2 .内存消耗少: 在 3 万 ...
- nginx 场景业务汇总 (中)
本文链接:http://www.cnblogs.com/zhenghongxin/p/8906225.html,如果可以,请阅读上篇 <nginx场景业务汇总(初)> (十三)负载均衡 轮 ...
随机推荐
- JVM学习——编译OpenJDK
最近在学习<深入理解java虚拟机 第二版>这本书.书中第一部分建议大家自己编译OpenJDK.抱着学习态度也来编译个玩一玩.下面进入正题. 1.编译环境介绍 操作系统 CentOS Li ...
- JQuery_过滤选择器
一.基本过滤器 1.基本过滤器 过滤器主要通过特定的过滤规则来筛选所需的 DOM 元素,和 CSS 中的伪类的语法类似:使用冒号(:)开头. <script type="text/ja ...
- mysql跨数据库操作问题
跨数据库的操作,如果是命名符合mysql规范的直接database.table,如果不符合规范比如加了 - 等符号需要在数据库上面加`database`.table(不是'database'.tab ...
- alu features menu
可以把所有的custom menu和menu link移植到新的环境下,并且增加新的menu link不会吧module变成overridden, 只需到时recreate生成一个新的module包, ...
- 关于tomcat会在url末尾自动追加斜杠(/)
今天,突然发现一个问题, 比如我的请求路径为 http://ip:port/my_project/myapp, 在浏览器中敲入这个地址,然后会显示 http://ip:port/my_project ...
- PHP批量过滤MYSQL数据库内站外链接和图片
因发现站内很多引用站外文章的链接失效,产生大量的死链接,对于搜索引擎来说是极不友好的,很不利于网站优化,所以站内添加了站外链接过滤功能,对于新加的文章,在添加入库时就自动增加rel="nof ...
- Codeforces Round #370 (Div. 2) E. Memory and Casinos 线段树
E. Memory and Casinos 题目连接: http://codeforces.com/contest/712/problem/E Description There are n casi ...
- Android MediaPlayer和SurfaceView播放视频
昨天介绍了VideoView播放视频,今天再介绍一种播放视频的方法MediaPlayer和SurfaceView,MediaPlayer播放音频,SurfaceView来显示图像,具体步骤如下: 1. ...
- 基于httpClient的https的无秘钥登陆
HttpClient package com.mediaforce.crawl.util; import java.util.ArrayList; import java.util.HashMap; ...
- SAP 增强-出口选找方法-全部
■ SAP 中如何寻找增强 方法一:利用TCODE寻找增强(第二代的增强) 执行一个程序(源代码后附),在选择屏幕处输入你所需要增强的程序TCODE,执行後,就会出现一个列表,那里就有关于如何增强这个 ...