簡體   English   中英

Apache mod_cache:基於cookie值的變化緩存

[英]Apache mod_cache: Vary cache based on cookie values

目前,我正在使用mod_cache來緩存Web應用程序的頁面詳細信息。

我有基於User-Agent和Accept-Language的緩存Vary,因為這些情況有不同的有效負載。

Vary: User-Agent, Accept-Language

我們計划在每個頁面上都有特定於區域的信息,但這是我們嘗試確定緩存策略的地方。

我們有一個cookie,用於指示我們為地理位置定位的區域,但顯然緩存不會因此cookie而異。

一般來說,某些cookie或標題的可能會有所不同嗎? (注意我說某些cookie,因為我們不希望會話標識符與此沖突) - 類似於正則表達式匹配:

location=(.+?);

這可以使用Apache。 它可以解析cookie值並將其傳遞給自定義標頭,然后您需要通過此標頭變化:

# Set languageC cookie value to environment variable "siteLanguage"
RewriteCond %{HTTP_COOKIE} ^.*lunetics_locale.*$ [NC]
RewriteCond %{HTTP_COOKIE} (?:^|;\s*)lunetics_locale=([^;]*) [NC]
RewriteRule ^(.*)$ - [env=siteLanguage:%1]

# If no languageC cookie present. Set "siteLanguage" environment variable to "en"
RewriteCond %{HTTP_COOKIE} !^.*lunetics_locale.*$ [NC]
RewriteRule ^(.*)$ - [env=siteLanguage:en]

# Set enviroment variable "siteLanguage" value to custom header "SiteLanguage"
RequestHeader set X-Language "%{siteLanguage}e" env=siteLanguage

並在您的響應標頭中添加Vary X-Language 我不確定這是一種最好的方法,我有相關的問題和問題: 是否可以改變頁面緩存(具有緩存版本)具有相同的URL和不同的cookie值(語言)?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM