Nginx限制IP并发数与下载速度的方法

在Nginx服务器上进行一些常规设置,来限制其并发数及会话空间等。

nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量

1,添加limit_zone

这个变量只能在http使用

代码示例:

代码如下:

vi /usr/local/nginx/conf/nginx.conf
limit_zone one $remote_addr 10m;

2,添加limit_conn

这个变量可以在http, server, location使用
只限制一个站点,所以添加到server里面

代码如下:

vi /usr/local/nginx/conf/vhost/303i.com.conf
limit_conn   one 10;

3,重启nginx
 


代码如下:

service nginx restart

nginx 限速模块
参考:
关于limit_zone:http://wiki.nginx.org/NginxHttpLimitZoneModule
关于limit_rate和limit_conn:http://wiki.nginx.org/NginxHttpCoreModule

nginx可以通过HTTPLimitZoneModule和HTTPCoreModule两个组件来对目录进行限速。

代码如下:

http {
  limit_zone   one  $binary_remote_addr  10m; 
  server {
    location /download/ {
      limit_conn   one  1;
      limit_rate 300k;
    }
  }
}

limit_zone,是针对每个IP定义一个存储session状态的容器。

这个示例中定义了一个10m的容器,按照32bytes/session,可以处理320000个session。

代码如下:

limit_conn one 1;

限制每个IP只能发起一个并发连接。

代码如下:

limit_rate 300k;

对每个连接限速300k。

注意,这里是对连接限速,而不是对IP限速。
如果一个IP允许两个并发连接,那么这个IP就是限速limit_rate×2。

(0)

相关推荐

  • Nginx防止直接用IP访问Web服务器的设置方法

    官方文档中提供的方法: If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests: 复制代码 代码如下: server { listen 80 default_server; server_name _; return 444; } 说白了就是只要是访客用ip访问就直接重置4

  • 详解CentOS下Nginx如何禁止IP访问

    我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦. 就可以这样

  • Nginx服务器限制IP访问的各种情况全解析

    限制某个IP同一时间段的访问次数 如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候.其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包, 造成对方服务器资源耗尽,一直到宕机崩溃. cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx可以通过HttpLimitReqModul和HttpLimitZo

  • 使用Nginx实现根据 IP 匹配指定 URL

    业务需求 业务和开发同事需要我这边做一条规则,所有访问 ip 为非上海.广州 office 外网 ip,url 为http://test.com/fuck/index.html 的请求都跳转到 http://test.com/index.html .然后所有在上海和广州 office 的外网 IP 访问 http://test.com/fuck/index.html 依然还是 http://test.com/fuck/index.html.这样就可以在生产上做隔离,不影响其他用户的服务. 注:因

  • Nginx作为反向代理时传递客户端IP的设置方法

    nginx默认配置文件里面是没有进行日志转发配置的,这个需要我们自己手动来操作了,当然后端的real server不同时操作方法是不一样的,这里我们分别例举几种情况来说明一下. nginx做前端,转发日志到后端nginx服务器: 因为架构的需要采用多级 Nginx 反向代理,但是后端的程序获取到的客户端 IP 都是前端 Nginx 的 IP,问题的根源在于后端的 Nginx 在 HTTP Header 中取客户端 IP 时没有取对正确的值. 同样适用于前端是 Squid 或者其他反向代理的情况.

  • Nginx 禁止IP访问 只允许域名访问

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回50

  • nginx禁止某个IP访问站点的设置方法

    首先建立下面的配置文件放在nginx的conf目录下面,命名为blocksip.conf: deny 95.105.25.181; 保存一下. 在nginx的配置文件nginx.conf中加入:include blocksip.conf; 重启一下nginx的服务:/usr/local/nginx/sbin/nginx -s reload 就可以生效了. blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问: deny IP; allow IP; # block

  • Nginx中禁止使用IP访问网站的配置实例

    国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了.这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下. 国内因为备案的原因,所有服务器都要禁止使用IP访问网站.否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了.这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟来跟大家一起探讨一下. 如下的配置项,可以设置允许使用I

  • nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone 这个变量只能在http使用 vi /usr/local/nginx/conf/nginx.conf limit_zone one $binary_remote_addr 10m; 2.添加limit_conn 这个变量可以在http, server, location使用 我只限制一个站点,所以添加到server里面 vi /usr/local/nginx/conf/host/gaoji

  • 禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    PHP禁止某个IP或IP段访问 废话不多说,客官请看: <? //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ) { die ("您的IP禁止访问!"); } //禁止某个IP段 $ban_ran

随机推荐