`

[转]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模块设置白名单的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Nginx白名单防御模块belialwaf.zip

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

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

    Nginx 配置TCP代理转发 使用Nginx 新版的 stream方式,实现TCP/UDP代理转发。

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

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

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

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

    详解Nginx中的geo模块与利用其配置负载均衡的示例

    默认情况下,nginx有加载这个模块,除非人为的 –without-http_geo_module。 ngx_http_geo_module模块可以用来创建变量,其值依赖于客户端IP地址。 geo指令 语法: geo [$address] $variable { … } 默认值: — 配置...

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

    nginx带nginx-http-flv模块,包含所有rtmp功能,我自己在windows下编译的,直接可用,用的是最新版的1.19.4版本

    nginx_limit_access_module.zip

    nginx_limit_access_module - 可通过指定的 HTTP POST 接口中的值来拒绝请求。 示例配置: http { limit_access_zone zone=one:5m bucket_number=10007 type=ip; server { listen 80; server_name ...

    深入理解Nginx模块开发及架构解析

    深入理解Nginx模块开发及架构解析,深入理解Nginx模块开发及架构解析

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

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

    椒图服务器安全防护-nginx自编译模块

    椒图服务器安全管理系统是一款:基于web防护和主机系统安全加固防护、应用行为发现管控、微隔离、杀毒、防勒索、webshell、后门、防扫描、防爆破、等防护功能与一体的综合性的防护软件、以上文件为web防护模块中nginx-...

    实战nginx-张宴

    3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP( FastCGI) 的安装、 配置与优化 4.1 获取相关开源程序 4.2 安装PHP 5.2.10( FastCGI模式) 4.3 安装Nginx 0.8.15 4.4 配置开机自动启动Nginx+PHP 4.5 优化Linux...

    Windows 平台 Nginx Rtmp模块

    Windows 平台 Nginx Rtmp模块编译后的文件,nginx版本是nginx-1.12.1,自测可用 Windows 平台 Nginx Rtmp模块编译后的文件,nginx版本是nginx-1.12.1,自测可用

    实战Nginx.取代Apache的高性能Web服务器

    3.6 Nginx的浏览器本地缓存设置 第4章 Nginx与PHP(FastCGI)的安装、配置与优化 4.1 获取相关开源程序 4.2 安装PHP 5.2.10(FastCGI模式) 4.3 安装Nginx 0.8.15 4.4 配置开机自动启动Nginx + PHP 4.5 优化...

    nginx模块开发教程

    nginx模块开发教程,简述模块开发的方法

    win版本带nginx-rtmp模块

    双击nginx.exe # 简要说明 conf/nginx.conf 为配置文件实例 RTMP监听 1935 端口,启用live 和hls 两个application HTTP监听 8080 端口, * :8080/stat 查看stream状态 * :8080/index.html 为一个直播播放与直播...

    Windows下编译Nginx并添加模块.docx

    Windows下编译Nginx并添加模块,在项目中使用过的

    nginx-rtmp模块

    nginx-rtmp-module-master 源码包 nginx的rtmp流媒体模块

Global site tag (gtag.js) - Google Analytics