A. 什麼叫緩存伺服器
緩存伺服器用來存儲網路上的其他用戶需要的網頁,文件等等。這種伺服器不僅可以使用戶得到他們想要得信息,而且可以減少網路的交換量。緩存伺服器往往也是代理伺服器。對於網路的用戶,緩存伺服器和代理是不可見的,在用戶看來所有的信息都來自訪問的網站。
B. 什麼是理伺服器它在網路中有什麼作用
代理伺服器(Proxy)是網路信息的中轉站,
比方說HTTP代理伺服器。我們使用網路瀏覽器直接鏈接其他Internet站點並取得網路信息時,需送出請求信號來得到回答,然後對方再把信息傳送回來。
代理伺服器是 介於瀏覽器(即個人電腦)和Web伺服器(網路)之間的一台伺服器(大型電腦),有了它之後,瀏覽器不是直接到Web伺服器去取回網頁而是向代理伺服器發出請求,請求信號會先送到代理伺服器,由代理伺服器來取回瀏覽器所需要的信息並傳送給你。而且大部分代理伺服器都具有緩沖功能,就好像一個大緩存,它不斷將新取得的數據包存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。
除此之外還有SOCKS代理伺服器,其原理大同小異。
C. 什麼是代理伺服器它是干什麼用的
代理伺服器英文全稱是Proxy Server,其功能就是代理網路用戶去取得網路信息。形象的說:它是網路信息的中轉站。在一般情況下,我們使用網路瀏覽器直接去連接其他Internet站點取得網路信息時,須送出Request信號來得到回答,然後對方再把信息以bit方式傳送回來。代理伺服器是介於瀏覽器和Web伺服器之間的一台伺服器,有了它之後,瀏覽器不是直接到Web伺服器去取回網頁而是向代理伺服器發出請求,Request信號會先送到代理伺服器,由代理伺服器來取回瀏覽器所需要的信息並傳送給你的瀏覽器。而且,大部分代理伺服器都具有緩沖的功能,就好象一個大的Cache,它有很大的存儲空間,它不斷將新取得數據儲存到它本機的存儲器上,如果瀏覽器所請求的數據在它本機的存儲器上已經存在而且是最新的,那麼它就不重新從Web伺服器取數據,而直接將存儲器上的數據傳送給用戶的瀏覽器,這樣就能顯著提高瀏覽速度和效率。更重要的是:Proxy Server(代理伺服器)是Internet鏈路級網關所提供的一種重要的安全功能,它的工作主要在開放系統互聯(OSI)模型的對話層。主要的功能有:
1.突破自身IP訪問限制,訪問國外站點。教育網、169網等網路用戶可以通過代理訪問國外網站。
2.訪問一些單位或團體內部資源,如某大學FTP(前提是該代理地址在該資源 的允許訪問范圍之內),使用教育網內地址段免費代理伺服器,就可以用於對教育 網開放的各類FTP下載上傳,以及各類資料查詢共享等服務。
3.突破中國電信的IP封鎖:中國電信用戶有很多網站是被限制訪問的,這種 限制是人為的,不同Serve對地址的封鎖是不同的。所以不能訪問時可以換一個國 外的代理伺服器試試。
4.提高訪問速度:通常代理伺服器都設置一個較大的硬碟緩沖區,當有外界 的信息通過時,同時也將其保存到緩沖區中,當其他用戶再訪問相同的信息時, 則直接由緩沖區中取出信息,傳給用戶,以提高訪問速度。
5.隱藏真實IP:上網者也可以通過這種方法隱藏自己的IP,免受攻擊。
1.IE5.0以上版本中設置代理:菜單欄「工具」->下拉菜單「Internet選項」->選項卡「連接」->在「區域網設置」中選中您目前 使用的連接,然後點擊右側的「設置」->在中間的「代理伺服器」欄選中「使用代理伺服器」->在「地址」 和「埠」欄輸入本站提供的HTTP代理伺服器->確定->確定。
2.MyIE2中設置代理伺服器:菜單欄「選項」——》「代理伺服器」——》「代理設置」——》在輸入框中輸入標准格式的代理伺服器,如XXX.XXX.XXX.XXX:埠,然後「確定」並退出,繼續,菜單欄「選項」——》「代理伺服器」——》然後選擇剛才輸入的代理伺服器
3.騰訊瀏覽器(TT瀏覽器)中設置代理伺服器:菜單欄「工具」——》「WWW代理」——》「設置代理」——》在代理設置對話框中,點擊「新增」——》在代理設置區中,輸入代理,然後「確定」並退出,繼續,菜單欄「工具」——》「WWW代理」——》然後選擇剛才輸入的代理伺服器
D. 什麼是代理伺服器有什麼用
代理伺服器是一種特殊類型的網路節點,它會改變通過它的數據包,屏蔽其IP地址並使其看起來像是在代理系統中發起的數據包。代理伺服器可能是您網路體系結構的自然組成部分,也可能是為其用戶提供匿名服務的第三方伺服器。可以打開企業的計算機網路,抵禦一系列安全威脅。
在某些情況下,由於網路配置,可能需要代理伺服器。如果家中有多台PC,則Internet服務提供商提供的路由器可作為系統的一種代理。所有傳出流量首先傳輸到路由器,路由器作為您與外部世界的連接。從互聯網的角度來看,無論在路由器側連接多少台計算機,所有流量似乎都來自單個IP地址。
在某些情況下,代理可以作為記錄或過濾Internet流量的中心節點。公司可以通過內部代理路由所有流量,以防止用戶訪問與工作無關,甚至包含不適當內容的網站,以及在線記錄其用戶的活動。代理可能還需要用戶名和密碼才能訪問Internet,從而防止未經授權的用戶在非公司業務上花時間在線。代理伺服器還可以緩存常用資源,減少網路流量並縮短用戶的響應時間。
由於通過ip代理軟體的所有流量似乎都來自該代理,因此一些用戶利用此系統進行匿名處理。使用外部代理可能會使第三方難以在線跟蹤您的活動。但是,需要注意的是,代理的所有者可以輕松監視通過它的活動,因此使用不安全的代理可能會給您帶來很多安全風險。此外,由於您的Web流量必須先傳送到ip代理軟體才能導航到目標伺服器,因此此設置可能會導致大量延遲並降低瀏覽會話的速度。
當處理國際限制時,代理也很有用。某些網站會根據用戶所在國家/地區更改其提供的內容,幫助繞過這些限制。比如ipidea全球ip代理,可以更換全球大部分地區的IP地址,降低網路延遲、爬蟲受限······
E. 代理伺服器
代理伺服器是一種特殊類型的網路節點,它會改變通過它的數據包,屏蔽其IP地址並使其看起來像是在代理系統中發起的數據包。代理伺服器可能是您網路體系結構的自然組成部分,也可能是為其用戶提供匿名服務的第三方伺服器。可以打開企業的計算機網路,抵禦一系列安全威脅。一般說來,代理伺服器具有以下的功能:
1.通過緩存增加訪問速度
網際網路的迅速發展,使得網路帶寬變得越來越寶貴。所以為了提高訪問速度,好多ISP都提供代理伺服器,通過代理伺服器的緩存功能來加快網路的訪問速度。一般來說,大多數代理伺服器都支持HTTP緩存,但也有一些代理伺服器支持FTP緩存。對於大多數組織來說,選擇代理伺服器時,只需要HTTP緩存功能就足以了。
通常,緩存有主動緩存被動緩存之分。所謂被動緩存,是指代理伺服器只在客戶端要求數據時緩存伺服器返回的數據。如果數據過期,客戶端要求相同的數據,代理伺服器必須重新啟動新的數據請求,並在向客戶端發送響應數據時進行新的緩存。所謂主動緩存,就是代理伺服器不斷檢查緩存中的數據。一旦數據過期,代理伺服器會主動發起新的數據請求來更新數據。這樣,當客戶端要求數據時,響應時間將大大縮短。另外,對於數據中的認證信息,大多數代理伺服器不會緩存。
2.提供用私有IP訪問Internet的方法
如果你只有一個有限的IP地址,但需要為整個組織提供網際網路接入能力,IP地址是不可再生的寶貴資源,那麼你可以通過使用IPIDEA代理伺服器來實現。
3.提高網路的安全性
顯然,如果內部用戶通過代理伺服器訪問互聯網,那麼代理伺服器將成為進入互聯網的唯一渠道。相反,代理伺服器也是互聯網訪問內部網路的唯一渠道。如果你不做反向代理,對於互聯網上的主機來說,只有代理伺服器才能看到你的整個內部網路,從而大大提高了網路的安全性。
F. dns緩存伺服器是什麼意思
DNS緩存伺服器,即用來存儲計算機網路上的用戶需要的網頁、文件等信息的專用伺服器。這種伺服器不僅可以使用戶得到他們想要的信息,而且可以減少網路的交換量。緩存伺服器往往也是代理伺服器。由解析器和域名伺服器組成的,用於TCP/IP網路。
G. nginx緩存(proxy_cache模塊)
緩存的基本思想是利用客戶端訪問的時間局限性,將客戶端訪問過的內容做一個副本,在一定時間內存放到本地,當改數據下次被訪問時,不必連接到後端伺服器反復去查詢數據,而是由本地保存的副本響應數據。
保存在本地的這些副本具有一個過期時間,超過該時間將會更新。判斷一個副本數據是否為過期數據的辦法有很多,可以使用保留時間來判斷,也可以使用數據完整度來判斷。
許多Web伺服器還具有校驗功能,就是當某些副本數據過期以後,先向後端伺服器發送校驗請求,後端伺服器對這些數據進行校驗,如果發現原數據和副本沒有差別,則將過期副本重新置為可用副本。
以上nginx配置結合使用:
proxy_params文件的配置如下:
訪問一次頁面,並向 http://www.blogs-s.com:8080/api/ 發起一個介面數據請求,查看/cache/nginx目錄下的緩存結果:
ngx_cache_purge是nginx的第三方模塊,能夠幫助我清除nginx中的緩存。
在之前的nginx編譯安裝中我們是沒有把緩存的清除模塊ngx_cache_purge編譯進去的,如果啟動了緩存,沒有安裝這個模塊,在之後的調試中我們嘗試去清除緩存時,將會出現異常:
這個異常是在指示我們,找不到該指令的驅動,需要按照相關模塊。
ngx_cache_purge只是nginx的第三方模塊,並不是某個特殊的軟體,所以我們需要對nginx重新進行編譯,操作如下:
配置nginx:
再一次啟動nginx成功;
接下來進行緩存清除測試,訪問: http://blogs.com/clear_cache/api/index.php , 訪問這個連接將會清除介面: http://blogs.com/api/index.php 的緩存數據。
結果如下:
在項目開發中,不可能出現什麼都需要緩存的數據,緩存僅僅適合去緩存查詢頻繁,但是不需要實時更新的數據,這個是它適合的場景,而我們上面的配置,只要是訪問api介面目錄就會緩存介面的數據,這樣對於一些需要實時更新的介面數據來說是不合理的,需要控制好nginx的緩存去緩存什麼以及不緩存什麼
set 指令為變數設置,proxy_no_cache參數中的值可以設置多個,但是多個值中,只要有一個是不為0的,就會通過緩存響應數據。
該指令用於配置一塊公用的內存區域的名稱,該區域可以存放緩存的索引數據。這些數據在Nginx伺服器啟動時由緩存索引重建進程負責建立,在Nginx伺服器的整個運行過程中由緩存管理進程負責定時檢測過期數據,檢索等管理工作。
該指令用於配置Nginx伺服器向客戶端發送響應數據時,不從緩存中獲取的條件。這些條件支持使用Nginx 配置的常用變數。
看一個例子:
其中,Scookie_nocache、Sarg_nocache、Sarg_comment、Shttp_pragma 和Shttp_authorization 都是Nginx配置文件的變數,
該指令用於設置Nginx伺服器在內存中為緩存數據建立索引時使用的關鍵字
如果我們希望緩存數據包含伺服器主機名稱等關鍵字,則可以將該指令設置為:
該指令用於設置是否開啟緩存的鎖功能。在緩存中,某些數據項可以同時被多個請求返回的響應數據填充。開啟該功能後,Nginx伺服器同時只能有一個請求填充緩存中的某一數據項,這相當於給該數據項上鎖,不允許其他請求操作。其他的請求如果也想填充該項,必須等待該數據項的鎖被釋放。這個等待時間由 proxy_cache_lock_timeout 指令配置。
該指令用於設置緩存的鎖功能開啟以後鎖的超時時間。具體細節參見proxy_cache_lock 指令的相關內容
其中,time為設置的時間,默認為5s。
該指令用於設置客戶端請求發送的次數,當客戶端向被代理伺服器發送相同請求達到該指令設定的次數後,Nginx伺服器才對該請求的響應數據做緩存。合理設置該值可以有效地降低硬碟上緩存數據的數量,並提高緩存的命中率。
其中,number為設置的次數。默認設置為1。
該指令用於設置Nginx伺服器存儲緩存數據的路徑以及和緩存索引相關的內容
該指令設置比較復雜,一般需要設置前面三個指令的情形比較多,後面的幾個變數與Nginx伺服器緩存索引重建進程及管理進程的性能相關,一般情況下保持默認設置就可以了。我們來看幾個簡單的配置實例:
如果Nginx在訪問被代理伺服器過程中出現被代理的伺服器無法訪問或者訪問錯誤等現象時,Nginx伺服器可以使用歷史緩存響應客戶端的請求,這些數據不一定和被代理伺服器上最新的數據相一致,但對於更新頻率不高的後端伺服器來說,Nginx伺服器的該功能在一定程度上能夠為客戶端提供不間斷訪問。該指令用來設置一些狀態,當後端被代理的伺服器處於這些狀態時,Nginx伺服器啟用該功能。
該指令可以支持的狀態如語法結構中所示。
該指令可以針對不同的HTTP響應狀態設置不同的緩存時間,
該指令同於配置在什麼情況下不使用cache功能
該指令配置是否在本地磁碟緩存來自被代理伺服器的響應數據。這是Nginx伺服器提供的另一種緩存數據的方法,但是該功能相對 Proxy Cache簡單一些,它不提供緩存過期更新、內存索引建立等功能,不佔用內存空間,對靜態數據的效果比較好。
Proxy Store方法多使用在被代理伺服器端發生錯誤的情況下,用來緩存被代理伺服器的響應數據。
該指令用於設置用戶或用戶組對Proxy Store緩存的數據的訪問許可權,
有關Proxy Store方法的使用,我們通過官方給出的實例加深理解,在該實例中筆者通過注釋對配置做了說明:
H. http緩存過程
註:http 緩存只能緩存 get 方式請求的資源
緩存是指 代理伺服器 或 客戶端本地磁碟 內保存的資源副本。利用緩存可減少對源伺服器的訪問,因此也就節省了通信流量和通信時間。
緩存伺服器是代理伺服器的一種,並歸類在緩存代理類型中。換句話說, 當代理轉發從伺服器返回的響應時,代理伺服器將會保存一份資源的副本 。
緩存伺服器的優勢在於利用緩存可避免多次從源伺服器轉發資源。因 此客戶端可就近從緩存伺服器上獲取資源,而源伺服器也不必多次處 理相同的請求了。
瀏覽器緩存分 強制緩存 和 協商緩存 ,分別使用的欄位前者是Expires和Cach-control,後者是 Etag 和 Last-modified。
Expires (http/1.0):設的是資源的過期時間(絕對時間),瀏覽器判斷這次請求的時候是不是超過這個日期,沒超的話就直接讀取緩存中的資源,不向伺服器發請求。
Pragma :欄位值為「no-cache」的時候,會通知客戶端不要對該資源讀緩存,即每次都得向伺服器發一次請求才行。但是這種禁用緩存的形式作用不是那麼太大:1. 僅有IE才能識別這段meta標簽含義,其它主流瀏覽器僅能識別「Cache-Control: no-store」的meta標簽。2. 在IE中識別到該meta標簽含義,並不一定會在請求欄位加上Pragma,但的確會讓當前頁面每次都發新請求,但是僅限頁面,頁面上的資源則不受影響。
如果Pragma和Expires一起出現的話,Pragma的優先順序是高的。
Cach-Control (http/1.1):緩存控制 示例:
Cache-Control 有三種屬性:緩沖能力、過期時間和二次驗證。
緩沖能力:
過期時間:
二次驗證:
Expires使用的是服務端時間,可能出現客戶端和服務端時間不同步,導致本地緩存無用或無法過期。
Max-Age使用的是客戶端本地時間的計算,不會出現這個問題,推薦Max-Age。
如果同時啟用了Cache-Control和Pragma ,Expires,Cache-Control優先順序高。
Last-Modified / If- Modified-Since (http/1.0):判斷資源最後修改時間,只要這個日期改變了就不使用緩存。瀏覽器的頭部是If- Modified-Since,服務端的是Last-Modified,如果兩個匹配,代表伺服器資源未改變,服務端不會返回資源實體,只返回頭部,通知瀏覽器使用緩存。
缺點:可能有些文件會周期性地改變日期,但是內容其實沒變,但是該欄位只判斷最後修改時間,
E-tag / If-None-Match (http/1.1):Etag 是伺服器針對請求的資源文件生成的唯一標識,只要文件內容沒變化,則Etag值不變,克服了 Last-Modified / If- Modified-Since 的缺點。瀏覽器的頭部是If-None-Match,服務端的是E-tag,如果兩個匹配,代表內容未改變,通知瀏覽器使用緩存。
Etag 缺點:不適用於分布式系統 ,因為每個伺服器上的 Etag 值不同。
如果同時帶有E-tag和Last-Modified,服務端優先檢查E-tag。