b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

nginx利用limit模块设置IP并发防CC攻击

电脑杂谈  发布时间:2016-04-15 07:34:16  来源:网络整理

你是否正在寻找关于防cc攻击的内容?让我把最实用的东西奉献给你:

来源:

?mod=viewthread&tid=21954&extra=page%3D1%26filter%3Dtypeid%26typeid%3D1%26typeid%3D1

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:
参考文档2::

比如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还设了超时,排队超过一定时间,也是直接退回,返回服务器忙的响应。

    以上就是关于防cc攻击的全部内容,相信你一定会非常满意。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pc-fly.com/a/ruanjian/article-662-1.html

      相关阅读
        发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

        热点图片
        拼命载入中...