nginx_IP限制

#可能存在有些IP我们是不想被限制的,则可利用nginx_http_geo_module 和 ngx_http_map_module模块
http {
  # 定义名为$whiteiplist的geo,会根据client IP 映射成不同的值,默认值为1,白名单ip的值为0
  geo $whiteiplist {
    default 1;    #IP默认映射为1,根据geo的优先级,优先匹配完整IP。
    192.168.1.10 0;  #将192,168.10.0映射为0
    192.168.1.11 0;
  }
  # 定义名为$limit变量,$limit变量的值是由$whiteiplist的值决定的,当$whiteiplist为1时,$limit的值为$binary_remote_addr;当$whiteiplist为0时,$limit的值为空
  map $whiteiplist $limit {
    1 $binary_remote_addr;
    0 "" ;
  }
  # 定义一个key为$binary_remote_addr、名字为addr、空间大小为10M的limit_conn_zone
  limit_conn_zone $binary_remote_addr zone = addr:10m;
  # 定义一个key为$limit、名字为one、空间大小为10M、速度限制为1次每秒的limit_req_zone
  limit_req_zone $limit zone = one:10m rate=1r/s;
  server {
    location /search/ {
      # 定义当前location下$binary_remote_addr对应的连接数不能超过1
      limit_conn addr 1;
      # 定义当前location请求受名为one的limit_req_zone限制,令牌数为5,请求溢出后直接报错
      limit_req zone = one burst=5 nodelay;
    }
  }
}在这里插入代码片
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值