`

[转]nginx防刷limit 设置白名单(geo模块)

 
阅读更多

转:http://www.kuitao8.com/20131219/1814.shtml

 

Geo 模块

 

http {

        includeconf/mime.types;

        default_typeapplication/octet-stream;

        geo$geo {

                  default     default;

                  218.30.115.0/24           china_telecom;

                  202.106.182.0/24         china_unicom;

                  202.205.3.0/24             cernet;

        }

        Upstream default {

                  Server192.168.0.2:8080

}

Upstream china_telecom {

                  Server192.168.0.3:8080

}

Upstream china_unicom {

                  Server192.168.0.4:8080

}

Upstream cernet {

                  Server192.168.0.5:8080

}

Server {

listen 80

server_name localhost

       location/ {

proxy_redirect off;

proxy_set_header Host $http_host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For

$proxy_add_x_forwarded_for;

           proxy_next_upstream error timeout http_503 http_502http_504;

           proxy_pass http://$geo;

           access_log  /home/nginx_log/member_acc_log main;

           error_log/home/nginx_log/member_err_log;

       }

}

}

 

geo 指令

default:任何ip地址,相当于0.0.0.0/0

ranges:支持区间形式来指定ip段,该指令必须卸载geo配置环境的第一行。如:127.0.0.0-127.0.0.255

注:官方nginx 未找到白名单功能,只是全局负载均衡

Tengine nginx

geo 白名单配置

http {

  include       mime.types;

  default_type application/octet-stream;

  limit_req_zone $binary_remote_addr zone=one:3m rate=1r/m;

  limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/m;

  limit_req_zone $binary_remote_addr $request_uri zone=three:3m rate=1r/m;

 

  geo $white_ip {

      #ranges;

      default 0;

      10.0.0.0/8 1;

      192.168.0.0/16 2;

   }

  sendfile        on;

   keepalive_timeout  65;

 

  server {

      listen       80;

      server_name  localhost;

      location / {

          root   html;

          limit_req_whitelist geo_var_name=white_ip geo_var_value=1;

          limit_req_whitelist geo_var_name=white_ip geo_var_value=2;

          limit_req zone=one burst=2 nodelay;

          limit_req zone=two burst=2 nodelay;

          limit_req zone=three burst=2 nodelay;

          index  index.html index.htm;

      }

        }

}

表示白名单,要协同geo模块进行工作,其中geo_var_name表示geo模块设置的变量名,而geo_var_value表示geo模块设置的变量值。比如:

   geo $white_ip {

       ranges;

       default 0;

       127.0.0.1-127.0.0.255 1;

   }

 

   limit_req_whitelist geo_var_name=white_ipgeo_var_value=1;

上面表示ip127.0.0.1-127.0.0.255这个区间都会跳过limit_req的处理。

 

分享到:
评论

相关推荐

    Nginx通过geo模块设置白名单的例子

    总结一下,Nginx的`geo`模块和`map`指令结合使用,为我们提供了一种灵活的方法来创建IP白名单。这个例子展示了如何设置白名单以允许特定IP地址不受连接数和请求速率限制,从而确保关键服务的稳定性和安全性。这样的...

    Nginx白名单防御模块belialwaf.zip

    Belial 目前包含的模块有 : GET 、 POST 、 COOKIE SQL注入防御、文件上传控制、POST白名单审核、nginx路径解释防御、封IP、 自动拦截防御 cc防御。 防御面向的语言是 php .. 其他的~不做考虑 。启用 belial waf ...

    nginx配置tcp转发(nginx通过白名单访问)

    如果你需要实现白名单访问,可以通过Nginx的访问控制功能来实现。例如,你可以添加一个`allow`指令来指定允许访问的IP地址或子网: ```nginx stream { server { listen 8080; allow 192.168.1.0/24; # 允许192....

    nginx设置目录白名单、ip白名单的实现方法

    1.设置目录白名单:对指定请求路径不设置限制,如对请求路径为api目录下的请求不做限制,则可写为 server{ location /app { proxy_pass http://192.168.1.111:8095/app; limit_conn conn 20; limit_rate 500k; ...

    nginx动态添加访问白名单的方法

    本文实现的功能是:网站启用访问白名单,对于不在白名单中又需要访问的客户,只需打开一个不公开的网址,然后自动获得2小时的访问权限,时间达到后自动删除访问权限 实现此功能需要以下几个步骤: nginx启用访问白...

    nginx防并发限制ip连接数等配置.zip

    Nginx通过设置`limit_conn`和`limit_req`模块来限制每个IP地址的并发连接数和请求速率。这两个模块可以帮助我们有效地控制服务器的访问流量,避免DDoS攻击和其他滥用行为。 **2. limit_conn模块** `limit_conn`模块...

    nginx 限制ip、并发量、连接数等配置

    Nginx可以通过`limit_conn`模块来限制每个IP地址的并发连接数。首先,需要在Nginx配置文件中加载`limit_conn_module`模块,然后在`http`、`server`或`location`上下文中定义限制: ```nginx http { limit_conn_...

    nginx waf 模块,nginx waf so 模块,防CC NGINX 模块

    **Nginx WAF模块详解** Nginx Web Application Firewall (WAF) 是一个用于增强Nginx服务器安全性的模块,旨在保护Web应用程序免受各种网络攻击,如SQL注入、跨站脚本(XSS)、远程文件包含(RFI)等。Nginx WAF模块...

    第一个Nginx模块的例子

    标题中的“第一个Nginx模块的例子”意味着我们将探讨如何创建一个自定义的Nginx模块。Nginx是一个高性能的Web服务器和反向代理服务器,它以其轻量级、高并发处理能力而闻名。开发自定义模块可以让用户扩展Nginx的...

    nginx带nginx-http-flv模块windows编译版rtmp

    Nginx-RTMP是Nginx的一个扩展模块,由Adobe Systems开发,用于支持Real-Time Messaging Protocol (RTMP)。RTMP是一种协议,常用于在线流媒体传输,如视频直播服务。Nginx-RTMP模块允许Nginx接收来自Flash Player或...

    nginx限制连接数ngx_http_limit_conn_module模块1

    【Nginx 限制连接数 ngx_http_limit_conn_module 模块详解】 在互联网服务中,服务器经常面临流量异常、负载过大的情况,尤其在遭受大流量恶意攻击时,带宽的浪费、服务器压力的增大都会对业务造成严重影响。为了...

    Nginx模块源码 nginx-notice-2

    1. **初始化模块**:这部分代码在Nginx启动时执行,用于设置模块的配置信息和全局变量。 2. **配置处理函数**:这些函数负责解析和处理在Nginx配置文件中为模块指定的指令。 3. **事件处理函数**:这些函数处理来自...

    添加nginx-http-flv-module模块并重新编译后的nginx(windows版)

    3. 配置Nginx:打开Nginx的配置文件`conf/nginx.conf`,检查或添加必要的设置以支持流媒体服务,例如启用`flv_last_byte`和`hls`指令。 4. 集成模块:进入Nginx的`src`目录,然后将`nginx-http-flv-module`目录复制...

    nginx模块开发指南

    Nginx模块任务委派的主要轮廓中,提及了nginx模块承担的三种角色:处理模块(handlers)、过滤模块(filters)和负载均衡模块(load-balancer)。处理模块负责处理HTTP请求并输出响应;过滤模块则用于过滤处理模块...

    Nginx教程 防御ddos,用户访问控制,限流.zip

    **Nginx 教程:防御DDoS、用户访问控制与限流** Nginx是一款高性能的HTTP和反向代理服务器,广泛应用于Web服务领域,以其高效、稳定和灵活的配置而闻名。本教程将围绕如何利用Nginx进行DDoS防御、用户访问控制以及...

Global site tag (gtag.js) - Google Analytics