您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關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中怎么優化反向代理緩存了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。