在 Windows Azure 网站中配置动态 IP 地址限制
我们最近对 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 地址。
本文翻译自:
在 Windows Azure 网站中配置动态 IP 地址限制的更多相关文章
- 进一步探索:Windows Azure 网站中解锁的配置选项
编辑人员注释: 本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站 (WAWS) 中管理网站时,许多选项可使用 Azu ...
- 在 Windows Azure 网站中进行纵向扩展和横向扩展
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...
- 探索 Windows Azure 网站中的自动伸缩功能
去年10月,我们发布了若干针对 WindowsAzure平台的更新,其中一项更新是添加了基于日期的自动伸缩调度支持(在不同的日期设置不同的规则). 在这篇博客文章中,我们将了解自动伸缩的概念,并 ...
- 禁用 Windows Azure 网站中的 ARR 实例关联
编辑人员注释: 本博客文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 在 Windows Azure 网站中设置网站的多个实例是横向扩展网站的绝佳方式,Azur ...
- 如何在Ubuntu Server 18.04 LTS中配置静态IP地址
安装Ubuntu Server 18.04后需要分配一个的静态IP地址.先前的LTS版本Ubuntu 16.04使用/etc/network/interfaces文件配置静态IP地址,但是Ubuntu ...
- Python练习:爬虫练习,从一个提供免费代理的网站中爬取IP地址信息
西刺代理,http://www.xicidaili.com/,提供免费代理的IP,是爬虫程序的目标网站. 开始写程序 import urllib.requestimport re def open_u ...
- Windows Azure 网站的 IP 和域限制
编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. 配置 Azure 网站 (WAWS) 的 IP 和域限制一直是用户最迫切希望我们提供 ...
- Windows Azure 网站上的 WebSocket 简介
编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站最近新增了对 WebSocket 协议的支持..NE ...
- Windows Azure 网站:应用程序字符串和连接字符串的工作原理
编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站上有一个方便的功能,即开发人员可将 Azure 中的 ...
随机推荐
- leetcode Linked List Cycle python
# Definition for singly-linked list. # class ListNode(object): # def __init__(self, x): # self.val = ...
- echarts的使用总结;
题外话:好久没来博客园了,这几个月自己的工作经历可以算是相当丰富,其实一直不知道自己做web前端能做到什么时候,但是想说既然现在还在做着这个职位,就好好的学习.之前很少写js代码,来了新公司大多数都是 ...
- CSS3弹性盒模型布局模块
原文:http://robertnyman.com/2010/12/02/css3-flexible-box-layout-module-aka-flex-box-introduction-and-d ...
- I Hate It(线段树)
I Hate It Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- UI_拖动View
方法一 在touchesMoved中 // 获取到触摸的手指 UITouch *touch = [touches anyObject]; // 获取集合中对象 // 获取開始时的触摸点 CGPoint ...
- Node.js开发指南中的例子(mysql版)
工作原因需要用到nodejs,于是找到了<node.js开发指南>这本书来看看,作者BYVoid 为清华大学计算机系的高材生,年纪竟比我还小一两岁,中华地广物博真是人才辈出,佩服. 言归正 ...
- Git--廖雪峰的博客的学习笔记
为了督促自己能看完这个网站的学习教程,边看边做了些简要的笔记,记录了常用命令,其实也就是自己打了些简单的命令,好多直接就粘贴过来了,也算是一个学习的证明吧,想按详细的教程,还是要去博主的园子学习啊地址 ...
- NET项目反编译+VS解决方案整理流程
net项目反编译 工具:De4Dot + IL SPY和Reflector结合使用 项目:vs10+创建解决方案,每个类库尽量按照dll名来命名,方便整合,新建web项目先把aspx等文件拷贝进去,注 ...
- 重启sql server服务两种方式
1.第一种重启SQl server的方法 点击左侧的数据库重启 如图 右击有个重启操作 2.第二个重启sql server方法
- 在VC中,为图片按钮添加一些功能提示(转)
在VC中,也常常为一些图片按钮添加一些功能提示.下面讲解实现过程:该功能的实现主要是用CToolTipCtrl类.该类在VC msdn中有详细说明.首先在对话框的头文件中加入初始化语句:public ...