• 满园尽是503,记曾经的一次IIS 7性能考验


    在一个漆黑的夜晚,伸手不见五指,一个黑衣人偷偷潜入博客园的图片库,放了一些图片,然后迅速消失在黑幕中...

    在人山人海的淘宝网,也出现了一个黑衣人,在淘宝网的产品库中,将一些产品展示页面中的素材图片指向了博客园图片库中的图片...

    史上最强的一次风暴席卷整个博客园,巨量的访问请求涌向博客园,访问速度越来越慢,然后就是“满园尽是503”。

    IIS 7的同时连接达到了设置的上限20000,上限改为3万,同时连接立即达到3万,改为5万,同时连接立即会达到3万...

    开始以为是拒绝服务攻击(DDOS),后来发现是“黑衣人”上传的图片,淘宝网上很多页面引用了这些图片...

    找到了原因,原以为可以轻松地解决问题,将这些图片移走就会风平浪静,雨过天晴。哪知,图片不在,503依旧...

    这样都不行,几乎让人崩溃了。图片请求是由IIS7的StaticFileModule(位于%windir%\System32\inetsrv\static.dll)处理的,虽然图片不存在,但对于这么大的请求,IIS 7仅仅是接受请求,检查文件是否存在,然后返回404这样的处理都顶不住。只要淘宝上的图片引用存在,503将一直继续,难道只有联系淘宝处理这些图片引用。即使淘宝处理了图片引用,但以后只要谁在访问量大的网站放一个不存在的指向博客园的链接,IIS还是处理不了。根本的解决办法还是要能应对这样的巨量请求。

    这时,博客园团队中有一个人急中生智,说试试通过ISAPI_Rewrite对图片请求进行重定向。当时想连微软自己的IIS7都处理不了,难道由第三方写的ISAPI Filter能处理。不管怎么样,试试这个方法吧。不试不知道,试了吓一跳,在ISAPI_Rewrite的http.ini中写了重定向规则(重定向至淘宝网站)之后,奇迹出现了,问题解决了。

    好了,这篇随笔目的就是把博客园实际遇到过的一个问题与大家分享,希望能给大家带来一点收获与思考。

  • 相关阅读:
    阻止用户复制页面上的文字的几种方法
    js设置聊天信息停留在最底部
    js动态删除表格中的某一行
    XmlSerializer vs DataContractSerializer: Serialization in Wcf
    WCF Service Binding Explained
    Visual Studio设置远程调试
    Could not download the Silverlight application
    .NET 中的三种接口实现方式
    化零为整WCF(9) 序列化(DataContractSerializer, XmlSerializer, DataContractJsonSerializer, SoapFormatter, BinaryFormatter)
    化零为整WCF(14) 事务(Transaction)
  • 原文地址:https://www.cnblogs.com/dudu/p/1757498.html
Copyright © 2020-2023  润新知