目錄
- 1.Web快取代理
- (1)常見的Web快取代理應用
- (2)資料庫快取代理:Redis、Memcached
- 2.CDN 內容分發網路
- (1)工作原理
- (2)配置Web快取代理
- (3)CDN的內容是如何獲取到的?
1.Web快取代理
作用:儲存一些之前給訪問過的,且可能要被再次訪問的靜態網頁資源物件,使客戶端可以直接從快取代理伺服器獲取資源,從而減少上游源伺服器的負載壓力,加快網站的整體訪問速度。
代理伺服器還可以代替客戶端去獲取源伺服器的資源,從而隱藏客戶端的真實地址。
(1)常見的Web快取代理應用
本地實現:Nginx、Squid、Varnish
雲環境遠端實現:CDN
(2)資料庫快取代理:Redis、Memcached
2.CDN 內容分發網路
作用:在最接近使用者的網路邊緣增加一層CDN快取代理伺服器,將源站點伺服器的內容釋出到CDN做快取,可以使使用者就近取得所需的內容,從而提高使用者訪問網站的響應速度。
總結一句話為CDN能夠給Web網站內容做快取,還可降低網路延遲。
(1)工作原理
先將源站點伺服器的靜態網頁資源快取到CDN節點上,使用者請求資源時,透過與DNS的配合,再根據使用者的IP地址和請求的URL,找到最靠近使用者的CDN節點,然後CDN節點會將資源資料快速地分發給使用者,使每使用者的請求不需要都從源站點伺服器獲取。從而避免了網路擁塞,降低了源站點伺服器的負載壓力,提高使用者訪問資源的速度和體驗。
(2)配置Web快取代理
20.0.0.100
20.0.0.110
20.0.0.130
20.0.0.110
20.0.0.130
20.0.0.100
Nginx 配置 快取代理
http {
......
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
upstream XXXX {
server IP:PORT; #定義上游源伺服器的IP和埠
.....
}
server {
listen IP:PROT;
server_name 主機名;
location 匹配路徑 {
proxy_cache my_cache; #指定快取共享記憶體區的名稱
proxy_cache_valid 200 60m; #指定有效快取的狀態碼 快取時間;
proxy_cache_key $request_uri; #指定快取資料的key為請求的URL
add_header Nginx_Cache_Status $upstream_cache_status #新增請求頭顯示快取狀態
proxy_pass http://XXXX; #設定沒有命令快取時的代理轉發
proxy_no_cache $自定義變數; #透過判斷自定義變數是否有值來決定是否進行快取
}
}
}
(3)CDN的內容是如何獲取到的?
1)讓使用者直接訪問資源,如果CDN有資源則可以命中快取並直接響應返回給使用者;如果沒有命中到快取則會將請求傳送給上游源站點伺服器獲取資源,並同步到CDN的快取中
2)對於熱點資源,可以先做快取預熱,再讓使用者訪問資源,即可命中CND中的快取並直接響應返回給使用者