nginx利用limit模块设置IP并发防CC攻击
来源:http://blog.xencdn.net/nginx-limit-conn-how-to/
nginx利用limit模块设置IP并发防CC攻击
在nginx.conf 中的http字段下面加入一如下一行
limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s; ##平均 1r/s 每秒1个请求
再在server下配置的主机定义文档中加入如下一行(全局就加在server下面)
limit_req zone=one burst=8;队列模式
limit_req zone=one burst=8 nodelay; ###不用队列 默认的突发(burst是0)
如果只想限制php的请求,加在location下
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
limit_req zone=one burst=8 nodelay;
重加载nginx即可 nginx -s reload
参考文档1:http://www.howtoforge.com/rate-limiting-with-nginx
参考文档2:http://wiki.nginx.org/NginxHttpLimitReqModule:
比如nginx.conf的http段配置如下
- limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;
- limit_req zone=req burst=150;
复制代码
“limit_req_zone $binary_remote_addr zone=req:20m rate=100r/s;”
相当于在nginx创建了一个检查站,名字叫req,凡是跟req相关的请求,并限定检查速率是100r/s。
所以当使用“limit_req zone=req
burst=150;”指定某些请求需要经过req的时候,请求的速率就被限制为100r/s。日志验证了这点。
然后就是burst=150了。这相当于在检查站req旁边放150个座位。如果某个请求当时超过速度限制被拦了,请他在空座位上坐着,等排队,如果检查站空了,就可以通过。如果连座位都坐满了,那就抱歉了,请求直接退回,客户端得到一个服务器忙的响应。所以说burst跟request_rate一点关系都没有,设成10000,就是1万个请求可以等着排队,而检查站还是1秒钟放行100个请求(龟速)。而且也不能一直排队,所以nginx还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。
nginx利用limit模块设置IP并发防CC攻击的更多相关文章
- nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
geo指令使用ngx_http_geo_module模块提供的.默认情况下,nginx有加载这个模块,除非人为的 --without-http_geo_module.ngx_http_geo_modu ...
- (转)nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录
nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录 原文:http://www.cnblogs.com/kevingrace/p/6165572.html Nginx的geo模块 ...
- OpenResty(nginx扩展)实现防cc攻击
OpenResty(nginx扩展)实现防cc攻击 导读 OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强 ...
- Linux系统防CC攻击自动拉黑IP增强版Shell脚本 《Linux系统防CC攻击自动拉黑IP增强版Shell脚本》来自张戈博客
前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个 ...
- 防cc攻击利器之Httpgrard
一.httpgrard介绍 HttpGuard是基于openresty,以lua脚本语言开发的防cc攻击软件.而openresty是集成了高性能web服务器Nginx,以及一系列的Nginx模块,这其 ...
- linux中防CC攻击两种实现方法(转)
CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法. 什么 ...
- PHP防CC攻击代码
PHP防CC攻击代码: empty($_SERVER['HTTP_VIA']) or exit('Access Denied'); //代理IP直接退出 session_start(); $secon ...
- 使用Discuz!自带参数防御CC攻击以及原理,修改Discuz X 开启防CC攻击后,不影响搜索引擎收录的方法
这部份的工作,以前花的时间太少. 希望能产生一定的作用. http://www.nigesb.com/discuz-cc-attacker-defence.html http://bbs.zb7.co ...
- 防cc攻击策略
黑客攻击你的网站,会采取各种各样的手段,其中为了降低你网站的访问速度,甚至让你的服务器瘫痪,它会不断的刷新你的网站,或者模拟很多用户同一时间大量的访问你的网站, 这就是所谓的CC攻击,这就需要我们在程 ...
随机推荐
- opencl-Shader
转载自:http://blog.csdn.net/leonwei/article/details/8956632 这里介绍关于OpenCL中program函数的写法,program函数通常是文本形式的 ...
- BigInteger Uva
import java.io.*; import java.math.BigInteger; import java.util.*; public class Main { public static ...
- No valid host was found
set in nova.conf -> scheduler_default_filters=AllHostsFilter Tried without success.
- jQuery.validate 中文API
名称 返回类型 描述 validate(options) 返回:Validator 验证所选的FORM valid() 返回:Boolean 检查是否验证通过 rules() 返回:Options ...
- 【python自动化第七篇:面向对象进阶】
知识点概览: 静态方法,类方法,属性方法 类的特殊方法 反射 异常处理 socket开发基础 一.静态方法:@staticmethod 只是名义上归类管理,实际上在静态方法里访问不了类或者实例中的任何 ...
- spfa + slf优化
最近在练习费用流 , 不是要用spfa吗 ,我们教练说:ns学生写朴素的spfa说出去都让人笑 . QwQ,所以就去学了一下优化 . slf优化就是双向队列优化一下,本来想用lll优化,可是优化后我t ...
- 《Effective C++》学习笔记条款13 以对象管理资源
条款 13 :以对象管理资源 例: voidf() { Investment *pInv = createInvestment(); ... ...
- 深入理解C++中的explicitkeyword
深入理解C++中的explicitkeyword kezunhai@gmail.com http://blog.csdn.net/kezunhai C++中的explicitkeyword仅仅能用于修 ...
- Java 线程池的原理与实现(转)
这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧.线程池就是其中之一,一提到线程,我们会想到以前<操作系统>的生产者与消费者, ...
- oracle3
查看表结构 DESC emp; 查询所有列 SELECT * FROM dept; 切忌动不动就用select * set timing on; 打开显示操作时间的开关,在下面显示查询时间. CREA ...