當前位置:首頁 » 文件管理 » 反向代理緩存

反向代理緩存

發布時間: 2023-01-24 18:04:06

A. Nginx反向代理常用配置

在計算機中,客戶端A與服務端B進行同行,中間加入中介C進行數據傳遞,則形成了代理。來個淺顯易懂的比喻,三年級二班小明和小花談戀愛,由於小明和小花座位離的太遠,這時候需要小王在中間傳遞紙條,在這個愛情故事中小王在中間充當了代理作用。

正向代理中,客戶端通過代理伺服器從服務端收發數據,即為正向代理。
舉個栗子:有一個區域網,但是只有主機局域訪問外部網路的許可權,現在所有的機器都需要訪問外部網路,通過將主機設置為代理伺服器,讓所有的機器通過主機可以訪問外部網路,即稱為正向代理。

反向代理中,代理伺服器替服務端收發數據,所有的請求與相應都經過反向代理,可以用來實現數據緩存,負載均衡等。
舉個栗子: 張三開了一個保險公司(服務端),一開始公司業務小,一個人接電話就夠了,後來隨著公司擴張,每天無數電話打進來,張三招了一個客服李四(代理),張三把和客戶對接的事情都交給了李四,形成了反向代理。

配置項很多,挑幾個幾個常用的配置依次介紹:location、proxy_set_header、rewrite、proxy_pass

當然還有」!「、」^「匹配,用的比較少,這里不做說明

這里還有很多數據,不一一說明

包含3個參數:

用法示例:

301重定向表示永久性重定向,對於SEO相較302來說比較友好,這里不做過多說明。

nginx doc
nginx rewrite 配置

B. Nginx 反向代理可以緩存 HTTP POST 請求頁面嗎

沒配置 DOWN 掉 post請求應用伺服器掛掉請求失敗

C. 代理與反向代理 (proxy vs reverse proxy)

一、正向代理

先說一代理(Forward Proxy),通常普通用戶使用的比較多的,是代理。也就是在瀏覽器的網路連接屬性框中,填寫上一個代理伺服器的ip和埠,即可通過代理伺服器中轉,去瀏覽網頁。有時候網站對單個 IP 某些操作進行了次數限制,設置代理 IP 訪問,不斷的更改代理 IP 來突破網站限制,也是代理。

二、反向代理

反向代理也是個非常有用的功能。反向代理(Reverse Proxy)方式是指以代理伺服器來接受 Internet 上的連接請求,然後將請求轉發給內部網路上的伺服器,並將從伺服器上得到的結果返回給 Internet 上請求連接的客戶端,此時代理伺服器對外就表現為一個反向代理伺服器。常用做網站伺服器配置,可以提供從防火牆外部代理伺服器到防火牆內部安全內容伺服器的加密連接,隱藏後端真實伺服器,更加安全。如 負載均衡 ,CDN 緩存都是反向代理。

代理就是 proxy 正向代理是翻譯的問題,英文中沒有這種概念,常識,不要被帶溝里了。

參考鏈接:

https://blog.csdn.net/sforiz/article/details/79651643

D. 【NGINX入門】3.Nginx的緩存伺服器proxy_cache配置

本文介紹NGINX緩存機制,配置和參數說明。

如圖所示,nginx緩存,可以在一定程度上,減少源伺服器的處理請求壓力。因為靜態文件(比如css,js, 圖片)中,很多都是不經常更新的。nginx使用proxy_cache將用戶的請求緩存到本地一個目錄。下一個相同請求可以直接調取緩存文件,就不用去請求伺服器了。畢竟,IO密集型服務的處理是nginx的強項。

Nginx的緩存加速功能是由proxy_cache(用於反向代理和靜態緩存)和fastcgi_cache(php動態緩存)兩個功能模塊完成。

Nginx緩存特點:

先上個例子:

因為我是在一台伺服器上做試驗,所以用了兩個埠 80 和 90 進行模擬兩台伺服器之間的交互。

接下來講一下配置項:

這里我設置了 圖片 、 css 、 js 靜態資源進行緩存。
當用戶輸入 http://wangxiaokai.vip 域名時,解析得到 ip:port 的訪問地址。 port 默認為80。所以頁面請求會被當前server截取到,進行請求處理。
當解析到上述文件名結尾的靜態資源,會到緩存區獲取靜態資源。
如果獲取到對應資源,則直接返回數據。
如果獲取不到,則將請求轉發給 proxy_pass 指向的地址進行處理。

這里直接處理 90 埠接受到的請求,到伺服器本地目錄 /mnt/blog 下抓取資源進行響應。

細心的讀者應該發現,我在第二段例子里,留了個彩蛋 add_header wall "hey!guys!give me a star." 。
add_header 是用於在報頭設置自定義的信息。
所以,如果緩存有效的話,那麼靜態資源返回的報頭,一定會帶上這個信息。

(1)Nginx系列教程(3)nginx緩存伺服器上的靜態文件
https://yq.aliyun.com/articles/752967

(2)proxy_cache
nginx 反向代理之 proxy_cache https://www.cnblogs.com/yyxianren/p/10832172.html

(3)Nginx使用upstream負載均衡和proxy_cache緩存實現反向代理
https://blog.51cto.com/13770206/2163952

E. 北大青鳥java培訓:web伺服器緩存基本定義

為了能夠給用戶一個良好的上網體驗,大部分的網頁和瀏覽器都配置了預載入以及緩存功能。
今天北京電腦培訓http://www.kmbdqn.cn/就通過案例分析來了解一下,關於web緩存的基本定義與類型介紹。
Web緩存是什麼?為什麼要使用緩存?Web緩存處於伺服器(也稱為源伺服器)和客戶端之間,監視請求並保存響應的副本,比如HTML頁面,圖片和文件等(統稱為表述)。
如果之後有對同一個URL的新請求,它會使用自己保存的內容來響應,而不是再次請求源伺服器來獲取內容。
使用Web緩存主要有下面兩個原因:減少延遲——因為響應請求的內容來自緩存(距客戶端較近)而不是源伺服器,它會花較少的時間來獲得表述並將他們呈現出來。
這使得Web看起來具有良好的響應速度。
減少網路傳輸——由於復用了表述,它可以減少客戶端使用的帶寬總量。
如果客戶需要為流量付費,這就意味著省錢。
緩存會降低對帶寬的要求,也降低處理難度。
Web緩存的種類瀏覽器緩存你在查看現代Web瀏覽器(比如IE、Safari或Mazilla)選項的時候,可能會看到「緩存」設置。
這個選項讓你配置一部分硬碟空間來保存你看過的表述。
瀏覽器緩存的規則相當簡單。
它通常會在一次會話(即當前瀏覽器中一次調用)中檢查表述是否新。
這個緩存在用戶使用「回退」按鈕或者點擊一個瀏覽過的鏈接時會特別有用。
而且,如果你在網站的各個頁面中瀏覽相同的圖片,他們幾乎能馬上從緩存中載入出來。
代理緩存Web代理緩存的工作原理相同,但規模更大。
代理以同樣的方式為成百上千的用戶服務;大公司和ISP常常把代碼緩存建立在防火牆之上,也可能是以獨立設備的形式存在(也稱為中間設備)。
代理緩存即不是客戶端的一部分,也不是伺服器的一部分,而是在網路之外,必須以某種方式把請求路由過去。
其中一種方式是手工修改瀏覽器代理設備,指定要使用的代碼;另一種方式是攔截。
攔截式代理會根據其自身的基礎網路重定向Web請求,不需要在客戶端配置,客戶端甚至不知道它們的存在。
代理緩存是一種共享緩存,通常不只是一個用戶,而是大量用戶在使用代理緩存。
正因為如此,他們特別擅長降低延遲和網路傳輸量。
這是因為眾人都需要的表述會被多次重復使用。
網關緩存網關緩存又名「反向代理緩存」或「替代緩存」。
網關緩存也是一種中介,它他們不是由網路管理員部署以節約帶寬,而是由網站管理員自己部署,使其站點更具伸縮性、可靠性以及擁有更好的性能。
很多方法都可以把請求路由到網關緩存,但常見的方法是使用負載均衡器讓他們對於客戶來說,看起來就跟源伺服器一樣。
內容分發網路(CDN)在整個Internet(或它的一部分)中分發網關緩存,並將其出售給對此感興趣的網站。
Web緩存對我有壞處么?我為什麼要幫助它們?Web緩存是互聯網中誤解深的技術之一。
因為代理緩存可以隱藏使用網站的用戶,所以網站管理員特別害怕失去對他們的站點的控制,這會使得他們很難去知道是誰在使用他們的站點。
然而不幸的是,即使沒有Web緩存,網路上也有非常多的因素可以保證管理員精確的知道一個用戶如何使用他們的站點。
如果這是你非常關注的問題的話,這篇手冊將會指導你如何在站點沒有不友好的緩存機制的情況下獲取你需要的統計信息。

F. nginx 反代里緩存怎麼清理

最簡單的反代+全緩存腳本

#新建2個目錄,放置緩存文件:

mkdir -p /home/cache/path

mkdir /home/cache/temp

修改/usr/local/nginx/conf/nginx.conf的http層,添加以下代碼:

client_body_buffer_size 512k;

proxy_connect_timeout 5;

proxy_read_timeout 60;

proxy_send_timeout 5;

proxy_buffer_size 16k;

proxy_buffers 4 64k;

proxy_busy_buffers_size 128k;

proxy_temp_file_write_size 128k;

proxy_temp_path /home/cache/temp;

proxy_cache_path /home/cache/path levels=1:2 keys_zone=cache_one:10m inactive=7d max_size=30g;

#500m是內存佔用,7d是7天無訪問刪除,30g是緩存占具硬碟空間

#limit_zone crawler $binary_remote_addr 10m; #這段是用於限制單ip連接數的,如果頻繁出現後端負載過大可以嘗試去掉#。

(6)反向代理緩存擴展閱讀:

nginx僅僅處理靜態頁面,動態的頁面(php請求)統統都交付給後台的兩台apache來處理。也就是說,可以把網站的靜態頁面或者文件放置到nginx的目錄下;動態的頁面和資料庫訪問都保留到後台的apache伺服器上。

假設前端nginx(為127.0.0.1:8080)僅僅包含一個靜態頁面index.html;後 台的兩個apache伺服器(分別為localhost:80和158.37.70.143:80),一台根目錄放置phpMyAdmin文件夾和 test.php(裡面測試代碼為print "server1";),另一台根目錄僅僅放置一個test.php(裡面測試代碼為print "server2";)。

G. 正向代理和反向代理

代理主要用在網路連接方面,不同類型的代理用於不同類型的連接。有一些代理用於隱藏用戶的身份,而另外一些代理用於隱藏伺服器的信息。常見的代理類型有正向代理和反向代理。這兩種代理的名字有些相近,不過差別卻非常大。

正向代理也就是大家常說的「代理」。用戶向代理伺服器發送請求,代理伺服器從網路中檢索數據。正向代理最典型的應用場景就是繞過網路限制。比如你們學校或公司的網路限制訪問抖音,可以通過設置一台代理伺服器,然後不直接連接抖音的服務,而是走代理,讓代理來訪問抖音的服務。

目的服務收到的請求來源IP會是代理伺服器的IP,而不是用戶的IP。這使得代理伺服器可以提供一定的匿名性。

與正向代理功能相近的是NAT,兩者都可以通過私有IP地址提供互聯網訪問。不過這兩種技術在TCP/IP協議棧中的位置不同。NAT工作在網路層,而代理工作在應用層。對使用者來說,NAT對各種應用程序都是透明的;而使用代理則必須在應用程序中指定代理伺服器的主機地址。

比如,使用NAT訪問網頁,不需要在瀏覽器上進行任何配置;而要使用代理訪問網頁,必須要在瀏覽器中指定代理的IP地址,如果代理僅支持HTTP協議,則只能通過代理訪問Web伺服器,不能訪問FTP伺服器。

由於NAT並非針對應用程序,因此在訪問互聯網時,NAT提供了比代理更高的可伸縮性。不過,NAT無法提供基於用戶名和密碼的身份驗證。而代理支持身份驗證,可以配置代理伺服器僅允許特定用戶訪問互聯網。

Web代理是最常用的正向代理,用於代理HTTP請求。除了會把完整的url傳遞過去外,來自客戶端的請求與常規HTTP請求幾乎沒有什麼兩樣。下面是一個請求的例子:

代理伺服器收到請求後,向目標伺服器發起請求,並且返回響應,比如:

上面的例子只對HTTP協議生效。有一些Web代理允許通過HTTP CONNECT方法建立通信隧道,利用這個隧道,代理伺服器可以轉發任意TCP數據包。

通過CONNECT方法,客戶端要求HTTP代理伺服器將TCP連接轉發到所需的目的地;然後,伺服器代表客戶端向目標伺服器發起連接。伺服器建立連接後,代理伺服器將繼續與客戶端之間來回代理TCP數據流。在上面的過程中,只有初始的連接請求是HTTP,之後伺服器僅代理建立的TCP連接。

客戶端連接到代理伺服器,在請求中指定主機和埠,例子如下:

如果代理伺服器允許連接並且連接到指定的主機,返回2XX成功響應:

現在,客戶端發送到代理伺服器的所有數據都蔣被轉發給遠程主機。

流行的HTTP代理伺服器軟體有Haproxy、Apache、Squid等。

反向代理一般用於控制對專用網路上伺服器的訪問。它代表一個客戶端從一個或多個伺服器檢索資源,然後將這些資源返回給客戶端,好像資源源自代理伺服器本身一樣。

流行的Web伺服器經常使用反向代理功能,從而屏蔽HTTP功能「較弱」的應用程序框架。這里的「較弱」主要指的是處理大量負載能力比較弱,以及處理不同形式的請求格式的能力比較弱,比如HTTP協議就有HTTP(S)1.x,HTTP(S) 2.x多個版本。反向代理可以將HTTPS請求轉換為HTTP請求、暫時緩存請求以保護後端伺服器、處理一些cookie和會話數據等等。

反向代理是非常有用的。常見用途如下:

與正向代理充當關聯的客戶端與任意伺服器中介不同,反向代理是任意客戶端與關聯伺服器的中介。換句話說,正向代理代表客戶端,而反向代理代表伺服器。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:713
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:978
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:687
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:840
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:745
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1085
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:314
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:194
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:882
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:841