我的Azure网站有一个奇怪的" HTTP成功" (监控)门户中的模式

时间:2015-01-09 05:14:14

标签: http azure azure-web-sites

我在Azure网站上托管了一个网站作为 Basic 层网站。 我目前处于开发阶段,但该网站是实时的,可由外部访问(至少在基本级别),因此我希望更好地了解Azure管理门户中的监控功能。

当我查看门户网站内的监控选项卡时,我看到HTTP success的奇怪模式。查看过去 60分钟(我个人尚未激活),HTTP successes非常循环, 80 连接,然后 0 ,然后 40 ,然后 0 ,然后重复。

Azure portal - Monitor

有没有人有任何指示我如何弄清楚 80 40 连接是什么。我当然没有在我的代码中有任何定时事件,所以除非有人实际上在网站上,否则不应该进行任何调用。

更新

我设置了一个临时服务器并阻止了除我自己的IP之外的所有传入流量。所以相同的代码运行,只是没有来自外界的访问。 HTTP success仅在我自己点击服务器时出现(如预期的那样)。这表明我的网站可能被外部机器人击中了? 有谁知道如何防范这种情况?或至少诊断请求是否合法等?

2 个答案:

答案 0 :(得分:1)

我会说这是导致流量的设置:

  

永远开启。默认情况下,如果网站闲置一段时间,则会卸载网站。这使系统可以节省资源。在“基本”或“标准”模式下,您可以启用“始终开启”以始终保持站点加载。如果您的站点运行连续的Web作业,则应启用“始终打开”,否则Web作业可能无法可靠地运行

http://azure.microsoft.com/en-us/documentation/articles/web-sites-configure/

每次您或其他人访问您的网站时,只需保持活力即可避免冷启动。

Here's另一个描述此行为的参考:

  

永远在线功能的作用就是现在每次都ping你的网站   然后,保持应用程序池的运行。

Scott Gu says

  

我们正在介绍的其他有用的网站功能之一   今天是我们称之为“永远在线”的功能。在a上启用Always On时   站点,Windows Azure将自动定期ping您的网站   确保网站始终处于活动状态且处于暖/运行状态。   这对于确保站点始终响应(以及确保站点响应)非常有用   应用程序域或工作进程由于缺乏而未被分页   外部HTTP请求)。

关于一般流量:首先,请求实际上只能来自Microsoft,因为使用Azure网站时,很快就会自动检测到并阻止此类流量模式 - 您无法设置像你这样保持活着。其次,没有任何现代机器人会以这种规律性定期ping特定页面,因为这一切都很明显。任何现代数据中心安全设备都会捕获这种流量并阻止/忽略/忽略它。

关于保护和安全的问题: Microsoft无法保护您自己的代码。但是,周边的所有内容都由Microsoft管理和处理。这是Azure的USP功能之一 - 防火墙,负载平衡,欺骗,反机器人和DDOS保护等。当然,任何公开的服务都会存在安全问题,但是当Microsoft管理其他服务时,您可以专注于您的应用程序。

运行Azure网站时,您就掌握了应用程序范围之外的安全性。这是一件好事,但如果您真的希望能够使用其他安全措施,则必须设置虚拟机并从那里运行您的网站。

答案 1 :(得分:0)

您可能想先了解这些请求是什么。在Azure管理门户上启用网站的Web服务器日志记录,并在看到此模式后下载您网站的IIS日志。然后检查那些以了解URL,请求的客户端IP地址和用户代理字段,以确定请求是否真的来自搜索机器人。根据观察,您可以静态禁用某些IP,使用动态IP限制或配置URLREWRITE来阻止请求或请求标头中具有特定模式的请求

EDIT 这是阻止搜索机器人的方法 - http://moz.com/ugc/blocking-bots-based-on-useragent

您可以按照上述文章中描述的方式在IIS服务器上本地配置URLREWRITE,然后复制web.config中生成的配置或使用IIS管理器直接连接到azure网站,如http://azure.microsoft.com/blog/2014/02/28/remote-administration-of-windows-azure-websites-using-iis-manager/中所述并配置urlrewrite规则