反向代理伺服器緩存
1. nginx反向代理+靜態緩存+負載平衡+花生殼動態域名環境求助!
這個活不能做。
要麼做個區域網oa,要麼注冊域名買伺服器。
他不懂,你就要講清楚。專
如果還是屬要堅持讓你做這種落後復雜的東西,你做了第一次就會有第二次,可想你以後會是什麼情況。
明顯的,讓你做這個就是他心血來潮頭腦一熱臨時想出來的,即使做好了估計也用不長。
2. 如何設置nginx反向代理實現伺服器瞬間故障
利用Nginx反向代理原理,實現集群伺服器瞬間故障轉移,看用於生產環境中綜合設置的例子:
#註:proxy_temp_path和proxy_cache_path指定的路徑必須在同一分區
proxy_temp_path /data0/proxy_temp_dir;
#設置Web緩存區名稱為cache_one,內存緩存空間大小為200MB,1天沒有被訪問的內容自動清除,硬碟緩存空間大小為30GB。
proxy_cache_path /data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;
#輪詢伺服器,weight為伺服器權重,與訪問頻率成正比,max_fails最大超時次數,fail_timeout伺服器代理監聽超時時間
upstream backend_server {
server 192.168.203.43:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.203.44:80 weight=1 max_fails=2 fail_timeout=30s;
server 192.168.203.45:80 weight=1 max_fails=2 fail_timeout=30s;
}
server
{
listen 80;
server_name www.yourdomain.com 192.168.203.42;
index index.html index.htm;
root /data0/htdocs/www;
location /
{
#如果後端的伺服器返回502、504、執行超時等錯誤,自動將請求轉發到upstream負載均衡池中的另一台伺服器,實現故障轉移。
proxy_next_upstream http_502 http_504 error timeout invalid_header;
proxy_cache cache_one;
#對不同的HTTP狀態碼設置不同的緩存時間
proxy_cache_valid 200 304 12h;
#以域名、URI、參數組合成Web緩存的Key值,Nginx根據Key值哈希,存儲緩存內容到二級緩存目錄內
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
expires 1d;
}
}
3. Nginx 反向代理可以緩存 HTTP POST 請求頁面嗎
沒配置 DOWN 掉 post請求應用伺服器掛掉請求失敗
4. 是否只有將fikker用作反向代理服務器時, 才能緩存網站的動靜態頁面
1. 目前的 Fikker 網站加速就是採用反向代理伺服器的機制來實現的, 因為所有用戶的請求頁面在流經Fikker 的時候, Fikker 會對頁面進行緩存, 減少了網站資料庫的負載, 就是所謂的加速原理之一;
2. 用戶真實的訪問 IP 地址是通過 HTTP 頭傳遞給源站的, 類似 X-Forwarded-For: 8.20.15.54, 這個可參考 Fikker 系統幫助那裡的例子說明.
5. 代理伺服器緩存的如何實現
你要做正向代理還是反向代理,正向代理需要用戶瀏覽器進行配置,反向代理需要先配置DNS伺服器,然後接受用戶瀏覽請求,轉發請求給遠程伺服器,當然,轉發過程中可以進行訪問控制操作,緩存部分我們最近也碰到了問題,現在的想法是用哈希表進行存儲,利用MD5加密進行哈希函數設計
6. 緩存伺服器的緩存伺服器原理
Web緩存伺服器的應用模式主要是正向代理和反向代理。正向代理(Proxy)模式是代理網路用戶訪問internet,客戶端將本來要直接發送到internet上源伺服器的連接請求發送給代理伺服器處理。正向代理的目的是加速用戶在使用瀏覽器訪問Internet時的請求響應時間,並提高廣域網線路的利用率。正向代理瀏覽器無需和該站點建立聯系,只訪問到Web緩存即可。通過正向代理,大大提高了後續用戶的訪問速度,使他們無需再穿越Internet,只要從本地Web緩存就可以獲取所需要的信息,避免了帶寬問題,同時可以大量減少重復請求在網路上的傳輸,從而降低網路流量,節省資費。
反向代理(Reverse Proxy)模式是針對Web伺服器加速功能的,在該模式中,緩存伺服器放置在web應用伺服器的前面,當用戶訪問web應用伺服器的時候,首先經過緩存伺服器,並將用戶的請求和應用伺服器應答的內容寫入緩存伺服器中,從而為後續用戶的訪問提供更快的響應。其工作原理如下圖所示。
7. 什麼是反向代理(reverse proxy server)
但是,如果想讓互聯網上的主機訪問內部網的主機資源(例如:Web站點),又想使內部網主機免受外部網主機攻擊,一般的代理服務是不能實現的,需要使用反向代理來實現。
一.反向代理的概念
Web伺服器加速(反向代理)是針對Web伺服器提供加速功能的。它作為代理Cache,但並不針對瀏覽器用戶,而針對一台或多台特定Web伺服器(這也是反向代理名稱的由來)。實施反向代理(如上圖所示),只要將Reverse Proxy Cache設備放置在一台或多台Web伺服器前端即可。當互聯網用戶訪問某個WEB伺服器時,通過DNS伺服器解析後的IP地址是Reverse Proxy Server的IP地址,而非原始Web伺服器的IP地址,這時Reverse Proxy Server設備充當Web伺服器,瀏覽器可以與它連接,無需再直接與Web伺服器相連。因此,大量Web服務工作量被卸載到反向代理服務上。不但能夠防止外部網主機直接和web伺服器直接通信帶來的安全隱患,而且能夠很大程度上減輕web伺服器的負擔,提高訪問速度。
二.反向代理和其它代理的比較
下面將對幾種典型的代理服務作一個簡單的比較。在網路上常見的代理伺服器有三種:
1. 標準的代理緩沖伺服器
一個標準的代理緩沖服務被用於緩存靜態的網頁(例如:html文件和圖片文件等)到本地網路上的一台主機上(即代理伺服器)。當被緩存的頁面被第二次訪問的時候,瀏覽器將直接從本地代理伺服器那裡獲取請求數據而不再向原web站點請求數據。這樣就節省了寶貴的網路帶寬,而且提高了訪問速度。但是,要想實現這種方式,必須在每一個內部主機的瀏覽器上明確指明代理伺服器的IP地址和埠號。客戶端上網時,每次都把請求送給代理伺服器處理,代理伺服器根據請求確定是否連接到遠程web伺服器獲取數據。如果在本地緩沖區有目標文件,則直接將文件傳給用戶即可。如果沒有的話則先取迴文件,先在本地保存一份緩沖,然後將文件發給客戶端瀏覽器。
2. 透明代理緩沖伺服器
透明代理緩沖服務和標准代理伺服器的功能完全相同。但是,代理操作對客戶端的瀏覽器是透明的(即不需指明代理伺服器的IP和埠)。透明代理伺服器阻斷網路通信,並且過濾出訪問外部的HTTP(80埠)流量。如果客戶端的請求在本地有緩沖則將緩沖的數據直接發給用戶,如果在本地沒有緩沖則向遠程web伺服器發出請求,其餘操作和標準的代理伺服器完全相同。對於Linux操作系統來說,透明代理使用Iptables或者Ipchains實現。因為不需要對瀏覽器作任何設置,所以,透明代理對於ISP(Internet伺服器提供商)特別有用。
3. 反向代理緩沖伺服器
反向代理是和前兩種代理完全不同的一種代理服務。使用它可以降低原始WEB伺服器的負載。反向代理伺服器承擔了對原始WEB伺服器的靜態頁面的請求,防止原始伺服器過載。它位於本地WEB伺服器和Internet之間,處理所有對WEB伺服器的請求,組織了WEB伺服器和Internet的直接通信。如果互聯網用戶請求的頁面在代理伺服器上有緩沖的話,代理伺服器直接將緩沖內容發送給用戶。如果沒有緩沖則先向WEB伺服器發出請求,取回數據,本地緩存後再發送給用戶。這種方式通過降低了向WEB伺服器的請求數從而降低了WEB伺服器的負載。
三.反向代理工作原理
8. nginx會不會影響web伺服器自身緩存性能
Nginx從0.7.48版本開始,支持了類似Squid的緩存功能。這個緩存是把URL及相關組合當作Key,用md5編碼哈希後保存在硬碟上,所以它可以支持任意URL鏈接,同時也支持404/301/302這樣的非200狀態碼。雖然目前官方的Nginx Web緩存服務只能為指定URL或狀態碼設置過期時間,不支持類似Squid的PURGE指令,手動清除指定緩存頁面,但是,通過一個第三方的Nginx模塊,可以清除指定URL的緩存。
Nginx的Web緩存服務主要由proxy_cache相關指令集和fastcgi_cache相關指令集構成,前者用於反向代理時,對後端內容源伺服器進行緩存,後者主要用於對FastCGI的動態程序進行緩存。兩者的功能基本上一樣。
Nginx 0.8.32以後版本,proxy_cache和fastcgi_cache已經比較完善,加上第三方的ngx_cache_purge模塊(用於清除指定URL的緩存),已經可以完全取代Squid。我們已經在生產環境使用了 Nginx 的 proxy_cache 緩存功能超過兩個月,十分穩定,速度不遜於 Squid。
在功能上,Nginx已經具備Squid所擁有的Web緩存加速功能、清除指定URL緩存的功能。而在性能上,Nginx對多核CPU的利用,勝過Squid不少。另外,在反向代理、負載均衡、健康檢查、後端伺服器故障轉移、Rewrite重寫、易用性上,Nginx也比Squid強大得多。這使得一台Nginx可以同時作為「負載均衡伺服器」與「Web緩存伺服器」來使用。
9. 用了nginx做了反向代理,緩存問題
給你舉個例子,假如要/data目錄下匹配到news的不緩存,沒匹配到的回緩存3天:答
location/data{
if($request_filename!~news){
expire3d;
}
}