django多網域名稱下Memcache的實現

2021-08-30 19:10:58 字數 730 閱讀 7760

最近由於**[url]訪問量的提公升,以及爬蟲的頻繁來襲,有時會導致apache伺服器負擔過重。因此準備採用memcache,cache不是經常變化的網頁,提高**效能。

django中memcache的實現相當簡單,網上有很多資料,只要簡單幾步就能cache你的頁面。但我這裡卻存在一問題,由於ecgoo是乙個多語種的平台,有多個語種網域名稱(en,cn,jp...),而在不同網域名稱相同請求路徑下cache的是同一頁面。如我給首頁加上memcache,則[url]和[url]快取的是同乙個頁面。

檢視django文件之後,發現問題的解決相當簡單,只要給你想快取的頁面加上vary請求頭部,那麼django快取頁面時還會考慮到vary請求頭部。

實現的方法:

在要快取的檢視函式前加入裝飾器@vary_on_headers('host'),對同一請求路徑不同host的url快取不同的頁面

from django.views.decorators.vary import vary_on_headers

from django.views.decorators.cache import cache_page

@cache_page(60*60)

@vary_on_headers('host')

def my_view(request):

...

[color=red]需要特別注意的是兩個裝飾器的的位置不能顛倒[/color]

django多網域名稱下Memcache的實現

乙個分站的平台,有多個地區網域名稱 bj,wh.而在不同網域名稱相同請求路徑下cache的是同一頁面。如我給首頁加上memcache,則 和快取的是同乙個頁面。查詢一些資料後,做如下解決 只要給你想快取的頁面加上vary請求頭部,那麼django快取頁面時還會考慮到vary請求頭部。實現的方法 在要...

不同網域名稱 多網域名稱 下共享登入狀態

在我的乙個個人專案中 花瓣平台 我希望接下來和他人協作搭建乙個大一些的平台,其模式類似於qq之於qq 這樣,我們各自負責自己的專案的開發與維護,但是需要共享使用者資訊,其中最重要的是共享登入狀態,即 實現在一處登入後,訪問另乙個站點就可以不用在登入了。經過查詢資料得知,傳統的做法是可以在cookie...

同網域名稱下多WEB應用的單點登入

已經配了2個應用,都花了不少時間,除第一次是上手的過程可以理解,第二次的問題主要是記性太差,才半年的時間就有很多要點都漏掉了,因此開博記錄下自己的思路,以免事不過三。web.config設定 name abc domain com.cn 配置要點,確保.abc作為cookie出現在domain中,可...