iis上的网站,别人快速抓取导致服务器带宽被用光,怎么办?

iis上的网站,别人快速抓取导致服务器带宽被用光,怎么办?,第1张

处理iis上的网站被人快速抓取导致服务器带宽被用光的方法包括以下几点:

1、增加数据缓存机制:在服务器端可以增加缓存机制,将一部分内容缓存到服务器,以提高服务器的应答速度,减少对服务器带宽的需求。

2、使用CDN服务提高网络访问速度:使用CDN将访问热点内容缓存到CDN节点,让用户可以从更近的地点访问,可以极大地改善网站的访问速度,减少服务器的压力。

3、使用合理的服务器带宽:如果确实受到大量抓取访问,可以从服务器带宽方面来考虑,升级服务器带宽,可以更好地应对大量访问。

直接给你一个现成代码吧,实测套用后可行,直接将站点链接输进去就行:

using JinherAMPBTPDeploy;

using MicrosoftWebAdministration;

using RedisHelper;

using System;

using SystemCollectionsGeneric;

using SystemConfiguration;

using SystemIO;

using SystemLinq;

using SystemText;

using SystemThreading;

using SystemThreadingTasks;

namespace Redis

{

public class Program

{

static readonly string AppPoolName = ConfigurationManagerAppSettings["ApplicationPoolName"]ToString();

static readonly string WebSiteName = ConfigurationManagerAppSettings["WebSiteName"]ToString();

static readonly int SleepTime = intParse(ConfigurationManagerAppSettings["SleepTime"]ToString());

static ServerManager sm;

static void Main(string[] args)

{

ConsoleWriteLine($"检测程序启动,{WebSiteName}当网站或其应用池停下后,会自动启动。");

sm = new ServerManager();

new Thread(RecoveryWebSite)Start();

}

static void RecoveryWebSite()

{

while (true)

{

try

{

var pool = smApplicationPools[AppPoolName];

if (pool != null && poolState == ObjectStateStopped)

{

ConsoleWriteLine("检测到应用池" + AppPoolName + "停止服务");

ConsoleWriteLine("正在启动应用池" + AppPoolName);

if (poolStart() == ObjectStateStarted)

{

ConsoleWriteLine("成功启动应用池" + AppPoolName);

}

else

{

ConsoleWriteLine("启动应用池" + AppPoolName + "失败 " + SleepTime / 60 + "秒后重试启动");

}

}

var site = smSites[WebSiteName];

if (site != null && siteState == ObjectStateStopped)

{

ConsoleWriteLine("检测到网站" + WebSiteName + "停止服务");

ConsoleWriteLine("正在启动网站" + WebSiteName);

if (siteStart() == ObjectStateStarted)

{

ConsoleWriteLine("成功启动网站" + WebSiteName);

}

else

{

ConsoleWriteLine("启动网站" + WebSiteName + "失败 " + SleepTime / 60 + "秒后重试启动");

}

}

}

catch (Exception ex)

{

ConsoleWriteLine(exMessageToString());

}

GCCollect();

ThreadSleep(SleepTime);

}

}

}

}

服务器端所使用的软件则主要是Windows平台上的IIS以及主要应用在Linux平台上的Apache。

IIS(Internet Information Services),Internet信息服务,是Windows Server系统中提供的一个服务组件,可以统一提供www、ftp、smtp服务。

Windows Server 2008 R2中的IIS版本为75,相比以前版本的IIS在安全性方面有了很大的改善。

下面我们新建一台名为web的虚拟机来作为web服务器,为其分配IP地址19216815,将计算机名改为web,激活系统并加入到域,最后再创建快照。

首先仍是需要在服务器管理器中安装“web服务器(IIS)”角色。

IIS 75被分割成了40多个不同功能的模块,管理员可以根据需要定制安装相应的功能模块,这样可以使Web网站的受攻击面减少,安全性和性能大大提高。所以,在“选择角色服务”的步骤中我们采用默认设置,只安装最基本的功能模块。

安装完成后,可以通过管理工具中的Internet信息服务(IIS)管理器来管理IIS网站,可以看到其中已经建好了一个名为“Default Web Site”的站点。

在客户端计算机client1上打开IE浏览器,在地址栏输入web服务器的IP地址即可以访问这个默认网站。

我们还可以在DNS服务器中为web服务器添加一条主机记录,这样就可以通过域名wwwcoolpennet访问默认网站了。

其实只要对这个默认网站稍作修改,就可以作为一个真实的网站来使用了。

在IIS管理器中,点击默认站点右侧操作窗口中的“基本设置”,可以看到默认站点的物理路这个路径对应的就是站点的主目录。

主目录就是网站的根目录,保存着web网站的网页、等数据,是用来存放Web网站的文件夹,当客户端访问该网站时,Web服务器自动将该文件夹中的默认网页显示给客户端用户。

打开这个主目录,可以看到里面已经有一个名为iisstarthtm的网页文件以及一张,这也就是我们刚才所看到的默认网站所显示的网页。

如果我们已经制作好了一个网站,那么只要将网站的所有文件上传到这个主目录中即可。一个网站中的网页文件非常多,必须得挑选其中的一个网页作为网站的首页,也就是用户在输入网站域名后所直接打开的网页文件。

网站首页在IIS中被称为“默认文档”,在IIS管理器默认站点的主窗口中,打开“默认文档”可以对其进行设置。

可以看到系统自带有5种默认文档:Defaulthtm、Defaultasp、Indexhtm、Indexhtml、iisstarhtm。

其优先级依次从高到低。作为网站首页的Web文件必须使用上述5个名字中的一种,如果是使用的其它名字,则必须将其添加到文档列表中。

下面在默认网站的主目录中,用记事本任意编辑一个名为Defaulthtm(注意D要大写)的网页文件,并随意输入一些内容。然后在客户端上访问该网站,发现可以成功打开我们设置的首页。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » iis上的网站,别人快速抓取导致服务器带宽被用光,怎么办?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情