導航:首頁 > 配伺服器 > 伺服器頁面如何緩存

伺服器頁面如何緩存

發布時間:2022-04-27 05:15:25

1. 伺服器緩存怎麼設置啊

雙核cpu 用ok緩存,是單核心cpu用liunx的緩存

2. nginx如何緩存動態JSP頁面

主要是在需要緩存的路徑加proxy_cache,而後端動態頁面也需要做相應的處理,否則無法被nginx緩存。(或者nginx配置處加上proxy_ignore_headers)

檢測到是代理伺服器訪問的時候,給動態頁面加上和靜態頁面一致的頭部信息,例如:

3. asp.net 伺服器緩存技術

實現

要實現頁面輸出緩存,只要將一條 OutputCache 指令添加到頁面即可。

<%@ OutputCache Duration="60" VaryByParam="*" %>

如同其他頁面指令一樣,該指令應該出現在 ASPX 頁面的頂部,即在任何輸出之前。它支持五個屬性(或參數),其中兩個是必需的。

Duration

必需屬性。頁面應該被緩存的時間,以秒為單位。必須是正整數。

Location

指定應該對輸出進行緩存的位置。如果要指定該參數,則必須是下列選項之一:Any、Client、Downstream、None、Server 或 ServerAndClient。

VaryByParam

必需屬性。Request 中變數的名稱,這些變數名應該產生單獨的緩存條目。"none" 表示沒有變動。"*" 可用於為每個不同的變數數組創建新的緩存條目。變數之間用 ";" 進行分隔。

VaryByHeader

基於指定的標頭中的變動改變緩存條目。

VaryByCustom

允許在 global.asax 中指定自定義變動(例如,"Browser")。

利用必需的 Duration 和 VaryByParam 選項的組合可以處理大多數情況。例如,如果您的產品目錄允許用戶基於 categoryID 和頁變數查看目錄頁,您可以用參數值為 "categoryID;page" 的 VaryByParam 將產品目錄緩存一段時間(如果產品不是隨時都在改變,一小時還是可以接受的,因此,持續時間是 3600 秒)。這將為每個種類的每個目錄頁創建單獨的緩存條目。每個條目從其第一個請求算起將維持一個小時。

VaryByHeader 和 VaryByCustom 主要用於根據訪問頁面的客戶端對頁面的外觀或內容進行自定義。同一個 URL 可能需要同時為瀏覽器和行動電話客戶端呈現輸出,因此,需要針對不同的客戶端緩存不同的內容版本。或者,頁面有可能已經針對 IE 進行了優化,但需要能針對 Netscape 或 Opera 完全降低優化(而不僅僅是破壞頁面)。後一個例子非常普遍,我們將提供一個說明如何實現此目標的示例:

示例:VaryByCustom 用於支持瀏覽器自定義

為了使每個瀏覽器都具有單獨的緩存條目,VaryByCustom 的值可以設置為 "browser"。此功能已經內置在緩存模塊中,並且將針對每個瀏覽器名稱和主要版本插入單獨的頁面緩存版本。

<%@ OutputCache Duration="60" VaryByParam="None" VaryByCustom="browser" %>

片段緩存,用戶控制項輸出緩存

緩存整個頁面通常並不可行,因為頁面的某些部分是針對用戶定製的。不過,頁面的其他部分是整個應用程序共有的。這些部分最適合使用片段緩存和用戶控制項進行緩存。菜單和其他布局元素,尤其是那些從數據源動態生成的元素,也應該用這種方法進行緩存。如果需要,可以將緩存的控制項配置為基於對其控制項(或其他屬性)的更改或由頁面級輸出緩存支持的任何其他變動進行改變。使用同一組控制項的幾百個頁面還可以共享那些控制項的緩存條目,而不是為每個頁面保留單獨的緩存版本。

實現

片段緩存使用的語法與頁面級輸出緩存一樣,但其應用於用戶控制項(.ascx 文件)而不是 Web 窗體(.aspx 文件)。除了 Location 屬性,對於 OutputCache 在 Web 窗體上支持的所有屬性,用戶控制項也同樣支持。用戶控制項還支持名為 VaryByControl 的 OutputCache 屬性,該屬性將根據用戶控制項(通常是頁面上的控制項,例如,DropDownList)的成員的值改變該控制項的緩存。如果指定了 VaryByControl,可以省略 VaryByParam。最後,在默認情況下,對每個頁面上的每個用戶控制項都單獨進行緩存。不過,如果一個用戶控制項不隨應用程序中的頁面改變,並且在所有頁面都使用相同的名稱,則可以應用 Shared="true" 參數,該參數將使用戶控制項的緩存版本供所有引用該控制項的頁面使用。

示例

<%@ OutputCache Duration="60" VaryByParam="*" %>

該示例將緩存用戶控制項 60 秒,並且將針對查詢字元串的每個變動、針對此控制項所在的每個頁面創建單獨的緩存條目。

<%@ OutputCache Duration="60" VaryByParam="none"

VaryByControl="CategoryDropDownList" %>

該示例將緩存用戶控制項 60 秒,並且將針對 CategoryDropDownList 控制項的每個不同的值、針對此控制項所在的每個頁面創建單獨的緩存條目。

<%@ OutputCache Duration="60" VaryByParam="none" VaryByCustom="browser"

Shared="true %>

最後,該示例將緩存用戶控制項 60 秒,並且將針對每個瀏覽器名稱和主要版本創建一個緩存條目。然後,每個瀏覽器的緩存條目將由引用此用戶控制項的所有頁面共享(只要所有頁面都用相同的 ID 引用該控制項即可)。
頁面級和用戶控制項級輸出緩存的確是一種可以迅速而簡便地提高站點性能的方法,但是在 ASP.NET 中,緩存的真正靈活性和強大功能是通過 Cache 對象提供的。使用 Cache 對象,您可以存儲任何可序列化的數據對象,基於一個或多個依賴項的組合來控制緩存條目到期的方式。這些依賴項可以包括自從項被緩存後經過的時間、自從項上次被訪問後經過的時間、對文件和/或文件夾的更改以及對其他緩存項的更改,在略作處理後還可以包括對資料庫中特定表的更改。

在 Cache 中存儲數據

在 Cache 中存儲數據的最簡單的方法就是使用一個鍵為其賦值,就像 HashTable 或 Dictionary 對象一樣:

Cache["key"] = "value";

這種做法將在緩存中存儲項,同時不帶任何依賴項,因此它不會到期,除非緩存引擎為了給其他緩存數據提供空間而將其刪除。要包括特定的緩存依賴項,可使用 Add() 或 Insert() 方法。其中每個方法都有幾個重載。Add() 和 Insert() 之間的唯一區別是,Add() 返回對已緩存對象的引用,而 Insert() 沒有返回值(在 C# 中為空,在 VB 中為 Sub)。

示例

Cache.Insert("key", myXMLFileData, new

System.Web.Caching.CacheDependency(Server.MapPath("users.xml")));

該示例可將文件中的 xml 數據插入緩存,無需在以後請求時從文件讀取。 CacheDependency 的作用是確保緩存在文件更改後立即到期,以便可以從文件中提取最新數據,重新進行緩存。如果緩存的數據來自若干個文件,還可以指定一個文件名的數組。

Cache.Insert("dependentkey", myDependentData, new

System.Web.Caching.CacheDependency(new string[] {}, new string[]

{"key"}));

該示例可插入鍵值為 "key" 的第二個數據塊(取決於是否存在第一個數據塊)。如果緩存中不存在名為 "key" 的鍵,或者如果與該鍵相關聯的項已到期或被更新,則 "dependentkey" 的緩存條目將到期。

Cache.Insert("key", myTimeSensitiveData, null,

DateTime.Now.AddMinutes(1), TimeSpan.Zero);

絕對到期:此示例將對受時間影響的數據緩存一分鍾,一分鍾過後,緩存將到期。注意,絕對到期和滑動到期(見下文)不能一起使用。

Cache.Insert("key", myFrequentlyAccessedData, null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

TimeSpan.FromMinutes(1));

滑動到期:此示例將緩存一些頻繁使用的數據。數據將在緩存中一直保留下去,除非數據未被引用的時間達到了一分鍾。注意,滑動到期和絕對到期不能一起使用。

更多選項

除了上面提到的依賴項,我們還可以指定項的優先順序(依次為 low、high、NotRemovable,它們是在 System.Web.Caching.CacheItemPriority 枚舉中定義的)以及當緩存中的項到期時調用的 CacheItemRemovedCallback 函數。大多數時候,默認的優先順序已經足夠了 — 緩存引擎可以正常完成任務並處理緩存的內存管理。CacheItemRemovedCallback 選項考慮到一些很有趣的可能性,但實際上它很少使用。不過,為了說明該方法,我將提供它的一個使用示例:

CacheItemRemovedCallback 示例

System.Web.Caching.CacheItemRemovedCallback callback = new System.Web.Caching.CacheItemRemovedCallback (OnRemove);

Cache.Insert("key",myFile,null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

TimeSpan.Zero,

System.Web.Caching.CacheItemPriority.Default, callback);

. . .

public static void OnRemove(string key,

object cacheItem,

System.Web.Caching.CacheItemRemovedReason reason)

{

AppendLog("The cached value with key " + key +

" was removed from the cache. Reason: " +

reason.ToString());

}

該示例將使用 AppendLog() 方法(這里不討論該方法,請參閱 Writing Entries to Event Logs)中定義的任何邏輯來記錄緩存中的數據到期的原因。通過在從緩存中刪除項時記錄這些項並記錄刪除的原因,您可以確定是否在有效地使用緩存或者您是否可能需要增加伺服器上的內存。注意,callback 是一個靜態(在 VB 中為 Shared)方法,建議使用該方法的原因是,如果不使用它,保存回調函數的類的實例將保留在內存中,以支持回調(對 static/Shared 方法則沒有必要)。
該特性有一個潛在的用處 — 在後台刷新緩存的數據,這樣用戶永遠都不必等待數據被填充,但數據始終保持相對較新的狀態。但實際上,此特性並不適用於當前版本的緩存 API,因為在從緩存中刪除緩存的項之前,不觸發或不完成回調。因此,用戶將頻繁地發出嘗試訪問緩存值的請求,然後發現緩存值為空,不得不等待緩存值的重新填充。我希望在未來的 ASP.NET 版本中看到一個附加的回調,可以稱為 ,如果定義了該回調,則必須在刪除緩存項之前完成執行。

緩存數據引用模式

每當我們嘗試訪問緩存中的數據時,都應該考慮到一種情況,那就是數據可能已經不在緩存中了。因此,下面的模式應該普遍適用於您對緩存的數據的訪問。在這種情況下,我們假定已緩存的數據是一個數據表。

public DataTable GetCustomers(bool BypassCache)

{

string cacheKey = "CustomersDataTable";

object cacheItem = Cache[cacheKey] as DataTable;

if((BypassCache) (cacheItem == null))

{

cacheItem = GetCustomersFromDataSource();

Cache.Insert(cacheKey, cacheItem, null,

DateTime.Now.AddSeconds(GetCacheSecondsFromConfig(cacheKey),

TimeSpan.Zero);

}

return (DataTable)cacheItem;

}

關於此模式,有以下幾點需要注意:

? 某些值(例如,cacheKey、cacheItem 和緩存持續時間)是一次定義的,並且只定義一次。

? 可以根據需要跳過緩存 — 例如,當注冊一個新客戶並重定向到客戶列表後,最好的做法可能就是跳過緩存,用最新數據重新填充緩存,該數據包括新插入的客戶。

? 緩存只能訪問一次。這種做法可以提高性能,並確保不會發生 NullReferenceExceptions,因為該項在第一次被檢查時是存在的,但第二次檢查之前就已經到期了。

? 該模式使用強類型檢查。C# 中的 "as" 運算符嘗試將對象轉換為類型,如果失敗或該對象為空,則只返回 null(空)。

? 持續時間存儲在配置文件中。在理想的情況下,所有的緩存依賴項(無論是基於文件的,或是基於時間的,還是其他類型的依賴項)都應該存儲在配置文件中,這樣就可以進行更改並輕松地測量性能。我還建議您指定默認緩存持續時間,而且,如果沒有為所使用的 cacheKey 指定持續時間,就讓 GetCacheSecondsFromConfig() 方法使用該默認持續時間。

相關的代碼示例是一個 helper 類,它將處理上述所有情況,但允許通過一行或兩行代碼訪問緩存的數據。請下載 CacheDemos.msi。

小結

緩存可以使應用程序的性能得到很大的提高,因此在設計應用程序以及對應用程序進行性能測試時應該予以考慮。應用程序總會或多或少地受益於緩存,當然有些應用程序比其他應用程序更適合使用緩存。對 ASP.NET 提供的緩存選項的深刻理解是任何 ASP.NET 開發人員應該掌握的重要技巧。

盡早緩存;經常緩存

您應該在應用程序的每一層都實現緩存。向數據層、業務邏輯層、UI 或輸出層添加緩存支持。內存現在非常便宜 — 因此,通過以智能的方式在整個應用程序中實現緩存,可以獲得很大的性能提高。

緩存可以掩蓋許多過失

緩存是一種無需大量時間和分析就可以獲得"足夠良好的"性能的方法。這里再次強調,內存現在非常便宜,因此,如果您能通過將輸出緩存 30 秒,而不是花上一整天甚至一周的時間嘗試優化代碼或資料庫就可以獲得所需的性能,您肯定會選擇緩存解決方案(假設可以接受 30 秒的舊數據)。緩存正是那些利用 20% 付出獲得 80% 回報的特性之一,因此,要提高性能,應該首先想到緩存。不過,如果設計很糟糕,最終卻有可能帶來不良的後果,因此,您當然也應該盡量正確地設計應用程序。但如果您只是需要立即獲得足夠高的性能,緩存就是您的最佳選擇,您可以在以後有時間的時候再盡快重新設計應用程序。

頁面級輸出緩存

作為最簡單的緩存形式,輸出緩存只是在內存中保留為響應請求而發送的 HTML 的副本。其後再有請求時將提供緩存的輸出,直到緩存到期,這樣,性能有可能得到很大的提高(取決於需要多少開銷來創建原始頁面輸出 - 發送緩存的輸出總是很快,並且比較穩定)。

你詳細看看

4. 網站緩存功能是什麼意思

提前下載後儲存在本地硬碟中

緩存的最根本的目的是為了提高網站性能,減輕頻繁訪問數據而給資料庫帶來的壓力.再進一步,合理的緩存了某種數據形式,還會減輕程序運算時,對CPU帶來的壓力.首先,我們要知道一個最基本的效率規則,操作內存中的數據比操作存放在硬碟上的數據是要快N個數量級的.操作簡單的文本結構的數據比操作資料庫中的數據快N個數量級.

目前緩存的做法分為兩種模式:


第一種模式是內存緩存,緩存數據存放在伺服器的內存空間中,這種模式的效率是最高的.這里要注意的是:每一個伺服器的資源都是有限的,盲目的把所有數據都加在到內存中,將可能會導致伺服器資源佔用過多,而造成Web服務失敗.


第二種模式就是文件緩存,緩存數據存放在伺服器的硬碟空間中.存放格式有很多種類,如:文本格式,XML格式,二進制格式等等.這里要注意的是,伺服器I/O的處理能力有限,當一次性讀取過大數據時(>1M),它並沒有想像中那麼的高效.這個時候就需要你有一個合理的文件結構來解決了.但這已經不在我們本次要講敘的內容範圍內了.

5. apache伺服器下的靜態頁面如何緩存

Apache有緩存模塊的。 例如:

LoadMole mem_cache_mole moles/mod_mem_cache.so
<IfMole mod_cache.c>
<IfMole mod_mem_cache.c>
CacheEnable mem /
# cache 40MB
MCacheSize 80960
MCacheMaxObjectCount 21000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 1
MCacheMaxObjectSize 74000
###GDSF 基於緩存命中率和文檔大小計算優先順序。在必要時,優先順序最低的文檔被移出緩存
##MCacheRemovalAlgorithm GDSF
#LRU 指定最長時間沒有用到的對象將在必要的時候移出緩存
MCacheRemovalAlgorithm LRU
</IfMole>

6. php DUXCMS如何開啟頁面緩存

1.頁面緩存。頁面緩存指之前載入過的頁面以文件方式緩存在伺服器中,在一段時間內再次載入相同頁面時無需重新執行頁面邏輯直接載入靜態頁面。rubyPHP的頁面緩存是自動進行的,在config/tpl.php中可配置是否啟用緩存以及緩存文件的有效期。當然這僅僅是全局設置,在調用視圖時可重新指定是否啟用緩存以及緩存有效期。

2.SQL緩存。sql緩存指之前執行過的查詢sql語句以及他的結果緩存在內存中,在一段時間內用相同的sql語句執行查詢操作時不經過資料庫直接返回內存中數據。rubyPHP使用Redis以鍵值方式緩存sql語句以及他的對應結果。rubyPHP能夠在php7上完美運行。(附:關於windows php7 redis 擴展的下載參照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重寫了mysql_query以及mongo_query方法,在執行查詢sql查詢語句時會優先載入未過期的緩存數據。與頁面緩存類似,sql緩存的全局配置路徑為config/redis.php,在具體執行sql語句前可重新執行是否使用緩存以及緩存有效期。

3.讀寫分離。讀寫分離是建立在主從同步基礎上為了減輕伺服器壓力,將查詢語句轉移到從伺服器上執行的解決方案。rubyPHP重寫了mysql_query,mongo_query函數,除了對查詢語句進行內存級緩存的優化,同時也將查詢語句放到了從伺服器上執行。mysql的主從配置文件路徑為config/mysql.php。

4.html壓縮。html壓縮配合頁面緩存,前者降低了伺服器端壓力,後者減少了輸出內容所佔空間,將html文件中的空格換行等進行壓縮,減少了輸出文件的大小,在一定程度上保護了html的安全。

rubyPHP在代碼結構上模仿CI,在功能上模仿thinkPHP。

rubyPHP的功能包含以下幾方面:

1.使用了thinkPHP的M方法操作資料庫。對於一些簡單的sql語句無需手工寫,用熟悉的M()->where()->limit()->find()這樣的語法即可完成。曾經面試有人問我為什麼thinkPHP的M方法能夠進行連續操作,現在終於明白是使用了單利模式。

2.屏蔽了資料庫的差異。M方法的另一個優點是用來組件sql語句,對高層屏蔽資料庫差異。當然,對於復雜的查詢,M方法是做不到的,此時可以使用已被重寫過的mysql_query以及mongo_query執行你的sql語句。

3.自定義路由。這一點模仿了CI的route.php,將url同控制器的映射關系寫到一個配置文件里。

不足之處:

view文件不支持變數循環輸出。目前的解決方案是使用angularjs調用介面在頁面輸出內容。框架示常式序便是一個使用angularjs的和bootstrap的界面。

7. WEB伺服器緩存問題,高手請進

如需要網站緩存伺服器,可以試用下Fikker,Fikker 是國內第一款面向廣大站長的專業級網站加速伺服器軟體,全界面化管理,利用頁面緩存技術(webcache),網站管理員或開發人員通過 Fikker 管理平台將指定的頁面緩存起來,其他用戶在訪問相同頁面時候,就不需要網站讀取資料庫後再生成頁面了,Fikker 直接返回用戶需要的頁面,平均響應速度提升 10 倍以上;另外 Fikker 通過 gzip 將頁面(html,asp,php,css,js)壓縮起來,減少了傳輸尺寸,提高傳輸效率和減少帶寬佔用。

8. asp動態頁面如何設置緩存

ASP頁面緩存的語句
Response.Buffer = True
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
</HEAD>

註解:
當Buffer為True的時候,asp會將這個程序解釋完畢後一起發送到客戶端,當Buffer為False的

時候,asp會邊解析邊發送數據.
ExpiresAbsolute 屬性指定緩存於瀏覽器中的頁的到期日期和時間。在未到期之前,若用戶

返回到該頁,該緩存的頁就顯示。如果未指定時間,該主頁在當天午夜到期。如果未指定日

期,則該主頁在腳本運行當天的指定時間到期。
表示當前頁面在客戶端 CACHE 存儲的時間,在指定時間內用戶瀏覽此網頁看到時

CACHE 裡面的而不是最新的內容,超過了指定時間瀏覽器則重新從伺服器上取最新的內容

,然後計時又重新開始。
CacheControl屬性設置代理伺服器是否可緩存ASP的輸出。默認設置為不可存。
AddHeader 方法用指定的值添加 HTML 標題。該方法常常向響應添加新的 HTTP 標題。它並

不替代現有的同名標題。一旦標題被添加,將不能刪除。

9. 伺服器段怎麼設置緩存 nginx

在開發調試web的時候,經常會碰到因瀏覽器緩存(cache)而經常要去清空緩存或者強制刷新來測試的煩惱,提供下apache不緩存配置和nginx不緩存配置的設置。

apache:
首先確定配置文件httpd.conf中確已經載入mod_headers模塊。

LoadMole headers_mole moles/mod_headers.so

我們可以根據文件類型來讓瀏覽器每次都從伺服器讀取,這里測試用css、js、swf、php、html、htm這幾種文件。

Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
Header set Pragma "no-cache"

nginx:

location ~ .*\.(css|js|swf|php|htm|html )$ {
add_header Cache-Control no-store;
}

對於站點中不經常修改的靜態內容(如圖片,JS,CSS),可以在伺服器中設置expires過期時間,控制瀏覽器緩存,達到有效減小帶寬流量,降低伺服器壓力的目的。

以Nginx伺服器為例:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
#過期時間為30天,
#圖片文件不怎麼更新,過期可以設大一點,
#如果頻繁更新,則可以設置得小一點。
expires 30d;
}

location ~ .*\.(js|css)$ {
expires 10d;
}

10. traffic server 怎麼緩存http頁面

客戶端指示

默認情況下,Traffic Server不緩存含有如下請求頭部的對象:

Cache-Control: no-store頭部

Cache-Control: no-cache頭部

配置Traffic Server忽略Cache-Control: no-cache頭部,見Configuring Traffic Server to Ignore Client no-cache Headers。

Cookie: 頭部(文本對象)

默認情況下,Traffic Server緩存為包含cookies請求服務的響應對象(除了文本對象)。可以配置Traffic
Server不緩存任何類型的cookies內容、緩存所有的cookies內容或者只緩存圖片類型的cookies內容。更多信息見Caching
Cookied Objects。

Authorization: 頭部

配置Traffic Server忽略客戶端的no-cache頭部

默認情況下,Traffic Server嚴格遵守客戶端Cache-Control:
no-cache的指示。如果一個被請求的對象包含no-cache頭部,即使它在緩存中仍然有效,Traffic
Server也會將該請求傳遞給源伺服器。可以配置Traffic
Server忽略客戶端no-cache指示,這樣它將忽略客戶端請求的no-cache頭部並用緩存中的對象服務該請求。

配置Traffic Server忽略客戶端的no-cache頭部

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache.ignore_client_no_cache

設置這個變數為1來忽略客戶端請求旁路緩存。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

源伺服器指示

默認情況下,Traffic Server不緩存包含如下響應頭部的對象:

Cache-Control: no-store頭部

Cache-Control: private頭部

WWW-Authenticate: 頭部

要配置Traffic Server忽略WWW-Authenticate頭部,見Configuring Traffic Server to Ignore WWW-Authenticate Headers。

Set-Cookie: 頭部

Cache-Control: no-cache頭部

要配置Traffic Server忽略no-cache頭部,見Configuring Traffic Server to Ignore Server no-cache Headers。

Expires: 頭部包含0值或過去時間

配置Traffic Server忽略伺服器no-cache頭部

默認情況下,Traffic Server嚴格遵守Cache-Control:
no-cache指示。一個來自源伺服器的帶有no-cache頭部的響應將不會被存儲在緩存,該對象之前在緩存中的拷貝也會被刪除。如果配置
Traffic Server忽略no-cache頭部,Traffic
Server同時也忽略no-store頭部。在大多數情況下是應該遵守no-cache指示的。

配置Traffic Server忽略伺服器no-cache頭部

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache.ignore_server_no_cache

設置這個變數為1來忽略伺服器旁路緩存。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

配置Traffic Server忽略WWW-Authenticate頭部

默認情況下,Traffic Server不緩存包含WWW-Authenticate響應頭部的對象。WWW-Authenticate頭部包含著客戶端准備用來響應源伺服器挑戰應答的鑒定參數。

當配置Traffic
Server忽略源伺服器的WWW-Authenticate頭部,所有帶WWW-Authenticate頭部的對象將被存儲在緩存中被用來服務後來的
請求,在大多數情況下,應該使用默認的不緩存帶WWW-Authenticate頭部對象的行為。只有在對HTTP
1.1深入理解的基礎上,再嘗試配置Traffic Server忽略伺服器WWW-Authenticate頭部。

配置Traffic Server忽略WWW-Authenticate頭部

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache.ignore_authentication

設置這個變數為1來緩存帶WWW-Authenticate頭部的對象。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

配置指示

除了客戶端和伺服器的指示,Traffic Server同樣響應配置選項和文件的指示。

可以按如下步驟來配置Traffic Server:

l 不緩存任何對象(見Disabling HTTP Object Caching)。

緩存動態內容 — 對象的URL以.asp結尾或者包含問號(?)、分號(:)或者cgi。更多信息見Caching Dynamic Content。

緩存響應Cookie: 頭部的對象(見Caching Cookied Objects)。

遵守cache.config文件中的從不緩存規則(見cache.config)。

關閉HTTP 對象緩存功能

默認情況下,Traffic Server緩存除了在cache.config文件中設置了從不緩存規則的所有對象。可以關閉HTTP 對象緩存功能,所有的對象都直接由源伺服器服務而且從不緩存。

手動配置關閉HTTP對象緩存功能:

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache.http

設置這個變數為0來關閉HTTP對象緩存功能。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

緩存動態內容

一個以.asp結尾或包含問號(?)、分號(;)或者cgi的URL被認為是動態的。Traffic Server不緩存冬天內容。可以配置Traffic Server緩存動態內容,當然這只推薦在專門的代理情形下使用。

配置Traffic Server緩存動態內容:

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache_urls_that_look_dynamic

設置這個變數為1來緩存動態內容。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

緩存Cookied對象

默認情況下,Traffic Server緩存為包含cookies請求服務的響應對象(除了文本對象)。Traffic
Server之所以不緩存文本內容的cookied,是因為對象的頭部和對象是一起存儲的,而帶有隱私的cookie頭部是不能和對象一起保存的。對於非
文本對象,不能確定是否使用了帶有隱私的cookie頭部。

可以配置Traffic Server:

不緩存任何類型的cookies內容。

只緩存圖片類型的cookies內容。

緩存所有的cookies內容。

配置Traffic Server緩存cookied內容的方式:

1. 在文本編輯器中打開位於Traffic Server的config目錄下的records.config文件。

2. 編輯下面的變數:

變數

描述

proxy.config.http.cache.cache_responses_to_cookies

設置這個變數來指定Traffic Server緩存cookied內容的方式:

0 = 不緩存任何cookies響應。

1 = 緩存所有的cookies響應。

2 = 只緩存圖片類型的cookies響應。

3 = 緩存除了文本內容類型的所有cookies響應。

3. 保存並關閉records.config文件

4. 定位到Traffic Server的bin目錄

5. 運行traffic_line –x命令來應用配置文件的變更。

閱讀全文

與伺服器頁面如何緩存相關的資料

熱點內容
程序員禿頭概率是多少 瀏覽:279
暗黑版神奇寶貝伺服器下載地址 瀏覽:256
ug加工中心編程培訓 瀏覽:910
冰河雲伺服器怎麼樣啊 瀏覽:665
app引流渠道這哪裡效果好 瀏覽:432
linux的report 瀏覽:429
超級解壓化妝 瀏覽:356
決策樹的種類和演算法 瀏覽:47
ecs將雲伺服器轉化為鏡像 瀏覽:45
java獲取list的長度 瀏覽:232
順豐速運app在哪裡付款 瀏覽:439
網頁郵箱怎麼加密 瀏覽:184
android搜索文本 瀏覽:648
三菱plc編程口定義 瀏覽:444
php獲取mp3信息 瀏覽:685
情感美文解壓方式 瀏覽:374
用命令查看mq版本信息 瀏覽:853
中國童話pdf 瀏覽:821
java線程內存溢出 瀏覽:188
cad顯示順序的命令 瀏覽:192