網站流量不是恆定的。 例如,當熱門劇集的新劇集發佈時,Netflix 等內容流媒體服務的流量就會飆升。
這種需求激增給負責向客戶提供內容的服務器帶來了很大壓力。 因此,內容流媒體服務在發布預期節目時面臨幾個問題。
那麼,當網站收到的流量呈指數增長時,它們如何即時擴展? 好吧,他們使用反向代理來平衡他們網站上的流量——但是什麼是反向代理,反向代理是如何工作的?
目錄
您的計算機如何連接到網站?
在使用反向代理之前,了解您的計算機如何連接到 Internet 上的網站非常重要。
簡單地說,互聯網只不過是一組相互通信的計算機。 甚至您連接的網站也是一台將網站數據存儲在其硬盤上的計算機。 這台計算機被稱為服務器,因為它在互聯網上為其他計算機提供他們想要的內容。
因此,當您在計算機上打開網站時,您所做的只是與連接到互聯網的另一台計算機進行通信。
也就是說,要連接到網站,您的設備需要知道服務器的位置。 此信息由服務器的 IP 地址提供給您的設備。 為了獲取這些信息,網站的 URL 使用 DNS 解析轉換為其 IP 地址,有效地將 URL 中的字母替換為網站的特定 IP 地址。 請注意,這是 DNS 工作原理的極其簡化的版本。
一旦您的瀏覽器獲得 IP 地址,它就會使用安全超文本傳輸協議 (HTTPS) 發送請求,然後服務器將數據發送到您的系統。
在使用代理之前要了解服務器的另一件事是,網站使用全球多個服務器來分發其內容。 此外,公司不是使用單個計算系統來運行所有網站功能,而是使用微服務架構,其中不同的計算單元執行不同的任務。 因此,不能將網站視為一台計算機; 相反,它是一組計算機協同工作,以最快的方式向客戶提供內容。
什麼是代理?
代理是位於服務器和發出請求的計算機(客戶端)之間的計算設備。 簡而言之,代理只不過是您和網站之間的中間人。 但是為什麼需要這個中間人呢?
嗯,您會看到,當您訪問一個網站時,您連接的計算機會收到有關您系統的所有詳細信息。 該數據包括您的 IP 地址、cookie 數據和系統的硬件/軟件詳細信息。
服務器請求上述數據以了解網站需要如何顯示在您的計算機上。
儘管此信息對於網站正常運行至關重要,但它使公司能夠在線跟踪您,從而消除您的隱私。 為了解決這個問題,使用了正向代理。
顧名思義,轉發代理是一種計算設備,它收集來自客戶端的請求並將它們發送到服務器。 由於這種架構,服務器認為請求是由代理髮出的,從而保持您的隱私完好無損。
也就是說,還有另一種類型的代理與服務器密切合作,同樣被稱為反向代理。
什麼是反向代理,它是如何工作的?
就像正向代理一樣,反向代理也可以解決問題。 但是,此問題與服務器有關。 簡而言之,與正向代理相比,反向代理的工作方式完全相反。
本質上,反向代理收集對服務器的所有請求。 一旦被攔截,反向代理會將請求與您正在查找的數據一起發送到服務器。 因此,反向代理可以管理登陸網站的流量。
這種設計架構解決了分發內容時的一個大問題。 您會看到,如果服務器在短時間內收到大量請求,它就無法處理它們,客戶端也無法訪問他們正在尋找的網站。
反向代理通過監控向服務器發出的請求數量並嘗試在不同服務器之間平衡它們來解決此問題。
反向代理的優點
除了管理來自不同客戶端的請求外,反向代理還具有幾個優點。
緩存
除了管理從客戶端接收的流量外,反向代理還可用於存儲經常請求的數據。 因此,代理不必請求服務器來獲取數據。 相反,它可以從本地緩存中提供數據。 這種方法在提供像本文這樣的靜態網頁時使用。
每次用戶想要訪問網頁時,客戶端都會向反向代理髮出請求。 在這個反向代理中是內容管理系統,負責在服務器上查找內容並將其發送給用戶。 在傳統方法中,CMS 必須連接到保存數據的 MySQL 數據庫,從而增加了網頁的訪問時間。
為了解決這個問題,反向代理將流行的網頁存儲在本地。 因此,代理可以直接向用戶發送數據,而無需連接服務器,從而提高網站性能。
安全
設置反向代理後,它就是您網站的代表。 因此,攻擊者無法直接訪問網站的內部服務器。 此外,反向代理可用於抵禦 DDoS 攻擊。 為此,反向代理可以查看嘗試執行 DDoS 攻擊的客戶端的 IP 地址並阻止其訪問服務器。
更快的數據解密
互聯網上的大多數網站都使用 HTTPS 來安全地傳輸數據。 因此,所有到達服務器的數據都是加密的。 因此,服務器必須解密接收到的流量並將數據提供給客戶端。 為了解決這個問題,可以使用反向代理來解密數據,從而減少服務器負載。
全局服務器負載平衡
Netflix、Google 和 Amazon 等熱門網站的服務器遍布全球。 因此,當用戶向這些網站發出請求時,可以將其路由到其任何服務器。 如果將請求發送到遠離客戶端的服務器,則網站的訪問時間會增加。 為了解決這個問題,反向代理將客戶端請求路由到最近的服務器以提高網站的性能。
反向代理讓您的互聯網更快
反向代理位於客戶端和服務器之間,有助於有效地管理流量。 不僅如此,反向代理還提高了服務器提供的安全性和可靠性。
也就是說,反向代理需要額外的處理能力和網絡資源,而且反向代理可能會為網站造成單點故障。