一.Web緩存代理
1.工作機制
- 代替客戶機向網站請求數據,從而可以隱藏用戶的真實IP地址。
- 將獲得的網頁數據(靜態Web元素)保存到緩存中并發送給客戶機,以便下次請求相同的數據時快速響應。
2.代理服務器的概念
- 代理服務器是一個位于客戶端和原始(資源)服務器之間的服務器,為了從原始服務器取得內容,客戶端向代理服務器發送一個請求并指定目標原始服務器,然后代理服務器向原始服務器轉交請求并將獲得的內容返回給客戶端。
- 緩存代理對于Web至關重要,尤其對于大型高負載Web站點。緩存可作為性能優化的一個重要手段,可以極大減輕后端服務器的負載。通常對于靜態資源,即較少經常更新的資源,如圖片,css或js等進行緩存,從而在每次刷新瀏覽器的時候,不用重新請求,而是從緩存里面讀取,這樣就可以減輕服務器的壓力。
3.代理服務器的作用
- 存儲一些之前給訪問過的,且可能要被再次訪問的靜態網頁資源對象,使客戶端可以直接從緩存代理服務器獲取資源,從而減少上游源服務器的負載壓力,加快網站的整體訪問速度。
- 代理服務器還可以代替客戶端去獲取源服務器的資源,從而隱藏客戶端的真實地址。
4.常見的Web緩存代理應用
- 本地實現 Nginx ?Squid ?Varnish
- 云環境遠端實現 ?CDN
- 數據庫緩存代理:Redis ?Memcached
二.Nginx緩存代理部署
準備三臺服務器都安裝Nginx
- 192.168.86.10
- 192.168.86.20
- 192.168.86.30
1.初始化操作
systemctl stop firewalld
setenforce 0
2.上傳Nginx yum源安裝Nginx
cd /etc/yum.repos.d/
rz -E 上傳Nginx yum源
yum install -y nginx
systemctl enable --now nginx
3. 準備測試界面
systemctl enable --now nginxcd /usr/share/nginx/html/
vim test.html#然后上傳一張圖片
?192.168.86.20:
頁面測試:
192.168.86.20?
頁面測試:
?關閉兩臺服務器長連接
vim /etc/nginx/nginx.conf
4.設置Nginx緩存服務器配置(192.168.86.10)
mkdir /data/nginx/cache -p
chown nginx:nginx /data/nginx/cache/vim /etc/nginx/nginx.cnf
添加配置:
proxy_cache_path /data/nginx/cache levels=1 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;定義服務器池:
upstream webservers {server 192.168.86.20:80;server 192.168.86.30:80;
{
vim /etc/nginx/conf.d/default.conf
?三.CDN
CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的CACHE(緩存)層,將網站的內容發布到最接近用戶的網絡”邊緣“的節點,使用戶可以就近取得所需的內容(就近原則),提高用戶訪問網站的響應速度。從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不均等原因,提高用戶訪問網站的響應速度。
作用:
- 在最接近用戶的網絡邊緣增加一層CDN緩存代理服務器,將源站點服務器的內容發布到CDN做緩存,可以使用戶就近取得所需的內容,從而提高用戶訪問網站的響應速度。
- 總結一句話為CDN能夠給Web網站內容做緩存,還可降低網絡延遲。
工作原理:
- 先將源站點服務器的靜態網頁資源緩存到CDN節點上,用戶請求資源時,通過與DNS的配合,再根據用戶的IP地址和請求的URL,找到最靠近用戶的CDN節點,然后CDN節點會將資源數據快速地分發給用戶,使每用戶的請求不需要都從源站點服務器獲取。從而避免了網絡擁塞,降低了源站點服務器的負載壓力,提高用戶訪問資源的速度和體驗。
CDN的內容是如何獲取到的?
- 讓用戶直接訪問資源,如果CDN有資源則可以命中緩存并直接響應返回給用戶;如果沒有命中到緩存則會將請求發送給上游源站點服務器獲取資源,并同步到CDN的緩存中
- 對于熱點資源,可以先做緩存預熱,再讓用戶訪問資源,即可命中CND中的緩存并直接響應返回給用戶