nginx屏蔽指定URI

nginx 屏蔽指定URI

  1. 背景

    大多数服务器被恶意刷量,集中在个别接口,当服务器扛不住时可以暂时屏蔽被刷接口,或者根据指定querystring屏蔽请求

  2. 例子

    比如有个播放接口 http://your.com/your/play?id=<视频id>

    屏蔽该接口,在location / 之前加上

    location ~ /play {
        return 403;
    }

    如果日志里查出集中刷量的视频id可以临时屏蔽该视频,location /之前加上

    location ~ /play {
        if ($arg_id ~ "222222|333333|其他被刷id") {
            return 404;
        }
        proxy_pass yourUpstream;
    }

    此配置视频id为222222或者333333或者其他被刷id就会被404

  3. 常用if语句语法简介

    • if (a)判断a真假(字符串“0”为假)

    • if(a=1) a等于1 if(a!=1) a不等于1

    • if(a ~ "re")a匹配正则表达式,大小写敏感;~*大小写不敏感

  4. limit_req简介(限制请求速率)

    • 语法:

      limit_req zone=name [burst=number] [nodelay];
    • 例子

      http块里定义zone
      limit_req_zone $binary_remote_addr zone=youku_zone:200m rate=200r/s;
      
      http, server, location块里使用zone限速
      limit_req zone=youku_zone burst=10 [nodelay];
      

      表示以ip为key,每个ip限速200req/秒,超过该速度的就会被delay,delay超过10个就503。如果写上nodelay,则直接503

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值