最近公司做了一个砸金蛋的活动,经过几天的发酵宣传后,每天以几万的的用户数在增长,后面才发现原来有人专门为此开发了一个全自动注册的软件

一时间网站被刷得打开异常缓慢,查看日志发现大部分都是用软件在刷,于是想到了在nginx层面去限制用户访问,百度加上自身情况改了下,大致的配置信息如下:

在nginx的http中添加如下语句

http
{
  limit_req_zone $binary_remote_addr zone=site_com:10m rate=2r/s;

  .....

}

设置一个限制区域,2r/s的意思是每秒最多允许两个进程同时处理

接着在server的php段中添加

location ~ .*\.(php|php5)?$
{
  limit_req zone=site_com burst=10;

  .....

}

burst的意思是相当于允许排队的进程,即是说如果当前已经有进程在处理中,后面来的进程都必须先进行排队,最多允许10个进程,多出的则直接访问503

基本上配置到这里,就可以了,重新nginx,用ab或者webBench测试,效果卓越

补充:

后面发现cron里的部分任务执行失败,看了下日志是因为本地的进程都也因为访问限制出现了503,后面想到给限制程序加上白名单,代码如下:

http{

geo $whiteiplist {
  default 1;
  10.162.89.111 0;
  113.90.81.206 0;
}

map $whiteiplist $limit {

1 $binary_remote_addr;
  0 "";

}

.....

}

再次重启nginx,完美~~

nginx限制单个IP访问配置的更多相关文章

  1. Nginx 限制单个IP的并发连接数及对每个连接速度(限速)

    使用Nginx限制单个IP的并发连接数能够减少一些采集程序或者DDOS的攻击. 再lnmp的nginx配置中已经添加了部分代码,但是是注释掉的,可以编辑/usr/local/nginx/conf/ng ...

  2. 使用 Nginx 阻止恶意 IP 访问

    找到具有明显特征的访问记录,比如: /Dec/::: +] "-" "Ouija_x.86/2.0" "-" 也许是某个开源框架的漏洞,执行 ...

  3. nginx拒绝国外IP访问

    nginx拒绝国外IP访问方法很多,比如iptables,geoip模块,域名解析等等.这些方法不会相互冲突,可以结合起来一起使用. 今天来教大家利用两个小方法解决  域名解析禁止掉海外IP访问网站. ...

  4. nginx单个ip访问频率限制

    一.限制所有单个ip的访问频率 1.http中的配置 http { #$limit_conn_zone:限制并发连接数 limit_conn_zone $binary_remote_addr zone ...

  5. nginx 禁止某IP访问

    首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf: deny 95.105.25.181; 保存一下. 在nginx的配置文件nginx.conf中加入:inc ...

  6. Nginx禁止使用ip访问,只允许使用域名访问

    Nginx虚拟主机配置,vhosts下面有很多域名的配置: [root@external-lb01 vhosts]# pwd/data/nginx/conf/vhosts [root@external ...

  7. Nginx 拒绝指定IP访问

    来源 : http://www.ttlsa.com/nginx/nginx-deny-ip-access/   闲来无事,登陆服务器,发现有个IP不断的猜测路径.试图往服务器上传文件(木马).于是查看 ...

  8. Nginx禁止使用IP访问

    在nginx的访问日志中,会出现只显示IP,而不出现域名的情况,在经过尝试之后,是因为没有设置禁止IP访问导致的. 下面就是在配置文件中设置禁止IP访问,来实现日志文件中$host显示域名. vim ...

  9. Oracle允许IP访问配置

    http://www.linuxidc.com/Linux/2014-10/108650.htm 1.oracle服务器下/opt/app/oracle/product/11.2.0/network/ ...

随机推荐

  1. hdoj 5074

    Problem Description Hatsune Miku is a popular virtual singer. It is very popular in both Japan and C ...

  2. ES6中块作用域之于for语句是怎样的?

    在ES6中新加了快作用域的概念(C语言就有,作为类c语言的js,当然应该加上),算是很好理解. { let i; } console.log(i);// i is not defined 在代码块当中 ...

  3. String.format介绍

    java类中提供的一种方法:String.format(String format, Object ... args) 提供字符串格式化功能: 不同转换符实现不同数据类型到字符串的转换: %s--字符 ...

  4. keil uvision3 添加 STC单片机库

    本人工作以来,一直从事仪表程序维护和开发工作,使用的清一色的都是microchip单片机。现在弄一个光立方的小玩意,需要用STC单片机。它有特点很明显,方便、资料多、最重要的一点便宜。 网上下载的ke ...

  5. seleniu+python+chrome的调试

    1.下载chrome,下载chrome driver,下载地址:http://code.google.com/p/chromedriver/downloads/list 2.安装chrome,默认路径 ...

  6. It will affect staff as well.

    Premier Foods has reduced its number of suppliers dramatically in the last 12 months. In 2013 it mad ...

  7. 关于由CSS2.1所提出的的BFC的理解与样例

    今天在这里谈谈css中BFC.“BFC”是Block Formatting Context的缩写,这个概念是由CSS2.1提出来的,它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用.满 ...

  8. Android 完整开源应用,完整开源项目

    (Antox)聊天的  (new)   (OpenKeychain)OpenPGP在android上的实现  (new)   (Flock)提供同步服务   (OpenFlappyBird)曾经火爆的 ...

  9. 如何修复Outlook 2007源文件.PST及性能优化补丁

    kb961752 微软发布了改善 Outlook 2007 个人数据文件性能的补丁,该补丁未来将会集成于 SP2 中,但是现在对于SP1用户可以提前得到它.   获取地址: http://suppor ...

  10. C#在数据层过滤属性中的主键

    C#使用泛型+反射做为数据层时,一个很都头疼的问题,如何让C#属性在程序里识别出哪个属性是主键,在拼接SQL时,不能把主键拼接到SQL语句里. 这个需要自定义一个属性.新建一个类文件,命名为Prosp ...