现在的位置: 首页 > 编程语言 > 正文

ASP.NET怎么反向代理缓存优化

2020年06月03日 编程语言 ⁄ 共 1445字 ⁄ 字号 评论关闭

  到目前为止,我们讨论了把缓存存放在ASP.NET的输出缓存中(内存和硬盘),以及浏览器缓存中,而大型站点的另一种常用做法是将缓存部署在反向代理服务器上,这类缓存我们通常称之为反向代理缓存。下面学步园小编来讲解下高性能ASP.NET怎么反向代理缓存优化?

  ASP.NET怎么反向代理缓存优化

  1:将varnish配置为IIS的代理

  首先需要为varnish准备配置文件,比如,可以为default.vcl,内容如下:

  backenddefault

  {

  .host=“192.168.0.77”;

  .port=“80”;

  }

  subvcl_fetch

  {removeberesp.http.Set-Cookie;

  }

  subvcl_recv

  {

  removereq.http.Cookie;

  }

  在我们要示范的这个实例中,这3个配置都不能少,如下,

  backenddefault:指定我们的IIS站点的地址和端口;

  subvcl_fetch:这是一个varnish函数,它varnish从后端服务器,也就是IIS中获得数据后被调用;

  subvcl_recv:varnish函数,表示客户端请求杠杠到达反向代理服务器时被调用;

  由于varnish默认在碰到http头中含有Cookie相关标识时直接忽略缓存,所以我们需要上面的两个函数针对Cookie做特殊处理。当然,目前这两个函数只是简单而野蛮的删除标识,实际的应用中我们可能需要根据实际情况为它们加上一些判断条件。

  ASP.NET怎么反向代理缓存优化

  2:启动varnish

  下面的命令为我启动varnish:

  C:varnishin>varnishd-a:8011-T:8088-fc:/varnish/etc/default.vcl-sfile,c:/varnish/var/cache,100M

  -a:8011表示,让varnish监听在8011端口。由于我测试环境下varnish和iis是在同一台机器上,所以IIS已经占用了80,我这里只有使用其它端口。

  -T是为varnish指定一个管理端口;

  -f指定所要使用的配置文件;

  后面的参数只是让varnish使用文件缓存,大小为100M,当然,应该根据实际情况指定大小;

  启动varnish后,如果我们请求http://地址:端口/,就可以等到200OK状态码,那表示varnish已经在正确滴接受请求。

  3:一个实例

  创建asp.net页面,内容如下:

  protectedvoidPage_Load(objectsender,EventArgse)

  {this.Response.AddHeader(“Cache-Control”,“max-age=60”);

  this.Response.AddHeader(“Last-Modified”,DateTime.Now.ToString(“U”,DateTimeFormatInfo.InvariantInfo));

  DateTimeIfModifiedSince;

  if(DateTime.TryParse(this.Request.Headers.Get(“If-Modified-Since”),outIfModifiedSince))

  {if((DateTime.Now-IfModifiedSince.AddHours(8))。Seconds<60)   {Response.Status=“304NotModified”;   Response.StatusCode=304;   return;   }   }   stringconn=“DataSource=192.168.0.77;InitialCatalog=luminjidb;UserId=sa;Password=sa;”;   using(DataSetds=Common.SqlHelper.ExecuteDataset(conn,CommandType.Text,“selecttop1*fromNameTba,DepTbbwherea.DepID=b.IDORDERBYNEWID()”))   {   varresult=ds.Tables[0].Rows[0][“name”].ToString();   Response.Write(result);   }   }   对该页面进行压力测试,100个用户,1000个请求,得到的结果如下:   如果没有缓存,则结果如下:   可以看到吞吐率有非常大的提升。   以上就是关于“ASP.NET怎么反向代理缓存优化”的内容,希望对大家有用。更多资讯请关注学步园。学步园,您学习IT技术的优质平台!

抱歉!评论已关闭.