微软最近对 Windows Azure 网站进行了升级,并启用了IIS8的动态 IP 限制模块。现在,开发人员可以为其网站启用并配置动态 IP 限制功能(或简称 DIPR)。

可以通过以下链接查看此 IIS8 功能的完整概述:

http://www.iis.net/learn/get-started/whats-new-in-iis-8/iis-80-dynamic-ip-address-restrictions

DIPR 功能主要为开发人员提供两种保护:

·   根据并发请求数阻止 IP 地址

·   根据某一时段的请求数阻止 IP 地址

此外,开发人员还可以配置 DIPR 的行为,例如,针对被阻止的请求, 发回的HTTP 状态代码的类型。

在 Azure 网站中,开发人员可以使用添加到 web.config 文件(位于该网站的根文件夹)中的配置部分来配置 DIPR。

如果您要根据并发请求数(即任意时刻正在发出的活动请求数)来阻止连接,请向该网站的 web.config 文件添加以下配置段。

如果在 denyByConcurrentRequests 元素中将enabled 属性设置为 true,则在最多并发请求数超过maxConcurrentRequests 属性中设置的值(在以上示例中设置为 10)时,IIS 将自动开始阻止该 IP 地址的请求。

另一方面,如果您要根据特定时间窗口内发出的请求总数阻止连接,则可以使用以下配置段:

在以上示例中,如果在 denyByRequestRate 元素中将enabled 属性设置为 true,则会指示 IIS 在requestIntervalInMilliseconds 定义的时间窗口(在此示例中设置为 2000 毫秒)内观察到的请求总数超过maxRequests 属性中设置的值(在此示例中设置为 10)时阻止该 IP 地址的请求。因此,在 2 秒的时间段内发出 10 个以上请求的客户端将被阻止。

最后,开发人员还可以选择同时启用这两种阻止机制。以下代码段既可指示 DIPR 阻止并发请求数超过 10 个的客户端,也可指示 DIPR 阻止在 5 秒时间窗口内总共发出 20 个以上请求的客户端:

在 DIPR 阻止某个 IP 地址后,该地址会一直保持阻止状态,直到当前时间窗口结束为止,之后,该 IP 地址将再次能够向该网站发出请求。例如,如果requestIntervalInMilliseconds 设置为 5000(5 秒),而某个 IP 地址在 2 秒刻度处被阻止,则该地址在剩下 3 秒(即,当前时间窗口内的剩余时间)内会一直保持阻止状态。

开发人员可以自定义客户端被阻止时返回的错误,方法为配置 dynamicIpSecurity元素自身的 denyAction 属性。denyAction 的允许值包括:

·   AbortRequest(返回 HTTP 状态代码 0)

·   Unauthorized(返回 HTTP 状态代码 401)

·   Forbidden(返回 HTTP 状态代码 403)。请注意,这是默认设置。

·   NotFound(返回 HTTP 状态代码 404)

例如,如果您要发送 404 状态代码,而不是发送默认代码(即 Forbidden 403),则可使用以下配置:

这里,我们会遇到这样一个问题:在 Azure 网站中运行时,DIPR 会看到什么 IP 地址?在 Windows Azure 中运行意味着 Web 应用程序正在使用多种负载平衡器。也就是说,呈现给该网站的客户端 IP 地址可能是上游负载平衡器的地址,而不是 Internet 上实际客户端的地址。但是,Azure 网站将为您自动执行必要的转换,确保 DIPR 模块“看到的”客户端 IP 地址是发出 HTTP 请求的 Internet 客户端的实际 IP 地址。

如何在Azure上动态配置IP地址的更多相关文章

  1. Azure杂七杂八系列(二) - 如何在Azure上重新配置VM

    我们经常遇到这样的问题,  对于已经建立的VM进行性能提升, 比如需要更好的虚拟机或者需要迁移到其他的虚拟网络 那么我们可以使用以下的方法进行修改. 1. 如图所示, TESTVMXX位于North ...

  2. centos7配置IP地址

    有关于centos7获取IP地址的方法主要有两种,1:动态获取ip:2:设置静态IP地址 在配置网络之前我们先要知道centos的网卡名称是什么,centos7不再使用ifconfig命令,可通过命令 ...

  3. CentOS安装后的第一步:配置IP地址

    有关于centos7获取IP地址的方法主要有两种,1:动态获取ip:2:设置静态IP地址 在配置网络之前我们先要知道centos的网卡名称是什么,centos7不再使用ifconfig命令,可通过命令 ...

  4. 通过DHCP动态管理IP地址

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作, 主要有两个用途:给内部网络或网络服务供应商自动分配IP ...

  5. 烂泥:VMWare Workation双网卡配置IP地址

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 前几天给一个客户做远程项目实施,客户那边的服务器是Windows OS的,我们这边的业务 ...

  6. Linux网络管理1---(Linux配置IP地址,ifconfig、配置文件)

    1.Linux配置IP 地址 ifconfig命令临时配置IP 地址 ifconfig命令,最常用的功能是查看本机的网络的配置状态(当然也可以配置网络,不过是暂时性的),直接输入ifconfig命令就 ...

  7. [部署]CentOS配置IP地址

    环境 虚拟机:VMWare10.0.1 build-1379776 操作系统:CentOS7 64位 简介 CentOS7最小化安装(Minimal)时,是不带ifconfig指令的,该指令在net- ...

  8. 1. 通过DHCP服务器动态获取IP地址之后无法上网的解决方法

    故障:内网正常,在同一个局域网内的其它PC端通过DHCP获取IP地址并且可以正常上网. 1.通过wireshark抓包,使用ipconfig /renew时,wireshark内出现DHCP请求服务, ...

  9. 一、安装虚拟机,配置ip地址

    一.安装linux 注意点: 一.选择最小化安装的时候,要自定义安装软件,必须要安装下面的 如果没有安装上面的,需要用下面的命令来查询安装 如果没有安装就会出现各种问题 二.分区简单介绍 1.至少要一 ...

随机推荐

  1. Mac OSX 安装Python的paramiko模块经验总结

    一.简单介绍 最近需要用Python模拟登录远程服务器并自动执行一些代码,需要安装一个叫paramiko的模块. paramiko官方介绍遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接 ...

  2. leetcode 解题 String to Integer (atoi)(C&python)

    //此题是easy题,比较简单,主要困难在考虑全输入的各种情况://1.开始的时候有空格等空白字符//2.开头有加减号//3.溢出(第一次写就是没有考虑到这个情况) //C代码int myAtoi(c ...

  3. codeforces 8VC Venture Cup 2016 - Elimination Round C. Lieges of Legendre

    C. Lieges of Legendre 题意:给n,m表示有n个为2的倍数,m个为3的倍数:问这n+m个数不重复时的最大值 最小为多少? 数据:(0 ≤ n, m ≤ 1 000 000, n + ...

  4. Codeforces Round #334 (Div. 1) C. Lieges of Legendre

    Lieges of Legendre 题意:有n堆牛,每堆有ai头牛.两个人玩一个游戏,游戏规则为: <1>从任意一个非空的堆中移走一头牛: <2>将偶数堆2*x变成k堆,每堆 ...

  5. C# zip/unzip with ICSharpCode.SharpZipLib

    download ICSharpCode and add reference using System; using System.Collections.Generic; using System. ...

  6. Vue + Webpack + Vue-loader 1

    Vue + Webpack + Vue-loader 原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue ...

  7. C++练习题

    1. 用面向对象的程序描述员工拥有的股票,股票有公司,价格,数量属性,且拥有展现基本数据,更新价格,买进,卖出操作,并具有比较两个股票对象股值大小的比较方法. 2. 用面向对象的程序描述一个栈的操作, ...

  8. html&nbsp;&nbsp;特殊字符(转)

    有些字符在HTML里有特别的含义,比如小于号<就表示HTML Tag的开始,这个小于号是不显示在我们最终看到的网页里的.那如果我们希望在网页中显示一个小于号,该怎么办呢? 这就要说到HTML字符 ...

  9. BT5之配置笔记

    BT5本来就是用Ubuntu 10.04做得蓝本,所以,我在配置BT5的时候,基本上都是按照Ubuntu 10.04的配置方法,在配置BT5 1    系统基本设置 1.1  安装Ubuntu10.0 ...

  10. 网络编程(二)NSURLSessionConfiguration

    1.NSURLSession有三种工作模式 (1)defaultSessionConfiguration(默认):使用的是基于磁盘缓存的持久化策略,Cache,Cookie. (2)ephemeral ...