《Nginx專題之-搭建具備緩存的反向代理服務器(基於雲服務器)》 大腚哥技術控昨天我們介紹了Nginx作為靜態代理資源的web服務器Nginx專題之-搭建可用靜態資源web服務器(基於雲服務器),我以這個為例子,我們再准備一台上遊服務器(可以是tomcat、Apache等)。昨天咱們搭建的Nginx服務器作為反向代理服務器使用。為什麼這麼做呢,因為上遊服務器需要處理複雜多變的業務邏輯,所以上遊服務器的效能很一般,我們使用nginx作為反向代理後,可以由一台nginx請求按照負載均衡的算法代理給多台上遊服務器。這樣我們就可以在用戶無感知的情況下,增加上遊的業務服務器,做到水平擴展。當上流服務器出現了問題,Nginx可以自動的把有問題的上遊服務器的請求轉交給正常的服務器。01搭建一個具備緩存功能的反向代理服務器 nginx對proxy的設置文檔Nginx的http_proxy模塊,使用proxy_cache_path進行配置緩存功能。Nginx對訪問過的內容會在Nginx服務器本地創建一個副本,在預設的時間段內再次訪問該數據的內容,就不需要通過Nginx服務器反向代理向上遊服務器發出請求,這樣能夠減少Nginx對上遊服務器的請求,而減少網絡流量,同時也減小了數據傳輸的延遲,提高了數據訪問的速度。同時當後端服務器出現問題,Nginx服務器上的副本資源還能夠將數據返回給客戶端的請求,這樣提高了服務器的可用性。但是緩存只針對一些不經常變化的資源(如:css,js,圖片等) nginx配置示例首先准備好一台上遊服務器(可以是tomcat,Apache等)添加上遊的服務器到Nginx中在http塊中添加upstream:upstream local {server 上遊服務地址+端口 ; }可以添加多個上遊服務器。在server->location塊中添加緩存的參數:proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarede_for;proxy_pass http://local; #local是咱們定義upstream的名稱http塊添加緩存proxy_cache_path /tmp/nginxcacge levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;#proxy_cache_path 本地路徑,用來設置Nginx緩存資源的存放地址#levels 默認所有緩存文件都放在同一個cache下,但是會影響緩存性能。所以會建立子目錄存放不同的文件。#keys_zone 在共享內存中設置一塊存儲區域來緩存的key和metadate,nginx可以判斷一個請求是否命中緩存。1m大概可以存儲8000個key;10m可以存儲80000個key。#max_size 最大緩存空間,如果不指定,會使用掉所有的磁盤空間。當達到配額後,會刪除最少使用的緩存文件。#inactive 未被訪問在緩存中的保留時間,如果沒有使用將被刪除(默認是10分鐘)。#use_temp_path 如果為off,nginx會將緩存文件直接寫指定的緩存文件中,而不適用temp_path存儲。建議為off,避免文件在不同目錄下不必要的複制。在location開啟緩存功能proxy_cache my_cache; #my_cache 是我們上面定義的proxy_cache_key $host$uri$is_args$args; #同一個url對不同用戶展示的不一樣的(用戶變量放到key中,參數指明了哪個用戶等)proxy_cache_valid 200 304 302 1d; #對響應碼是200、304、302的資源,設置緩存時長1天。02Nginx緩存的一些其他的說明proxy_cache_use_stale增強容錯能力上遊服務器出現問題,nginx可以使用緩存內容來響應客戶端的請求。多磁盤分割存儲緩存使用Nginx,如果有多個硬盤,可以用來在多個硬盤之間分割緩存/path/hd1 keys_zone=my_cache1/path/hd2 keys_zone=my_cache2split_clients $request_uri $my_cache{50% "my_cache1";50% "my_cache2";}location / {proxy_cache $my_cache;} 聲明:如有錯誤,請讀者留言糾正。謝謝您提出的寶貴意見,我會及時修改。 《Nginx專題之-搭建具備緩存的反向代理服務器(基於雲服務器)》完,請繼續朗讀精采文章。 喜歡 小編的世界 e4to.com,請記得按讚、收藏及分享!
音調
速度
音量
語言
Nginx專題之-搭建具備緩存的反向代理服務器(基於雲服務器)
精確朗讀模式適合大多數瀏覽器,也相容於桌上型與行動裝置。
不過,使用Chorme瀏覽器仍存在一些問題,不建議使用Chorme瀏覽器進行精確朗讀。