什麼是反向代理?nginx的用法有哪些?原理是什麼?

什麼是反向代理?nginx

https://baike.baidu.com/item/%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86 反向代理是代理服務器的一種。服務器根據客戶端的請求,從其關聯的一組或多組後端服務器(如Web服務器)上獲取資源,而後再將這些資源返回給客戶端,客戶端只會得知反向代理的IP地址,而不知道在代理服務器後面的服務器簇的存在web

爲何要反向代理優勢是什麼?算法

反向代理服務器能夠隱藏源服務器的存在和特徵。它充當互聯網雲和web服務器之間的中間層。這對於安全方面來講是很好的,特別是當您使用web託管服務時。apache

nginx主要用法有哪些?後端

1.http server 代替 apache瀏覽器

2.反向代理服務器,(隱藏原服務器的存在和特徵,客戶端只知道反向代理服務器的iP)安全

3.實現負載均衡(一臺服務器的訪問量是有限的,當超過他的承受能力的時候,服務器就會崩潰,爲了讓用戶有更好的體驗,能夠經過負載均衡的方式分擔服務器的壓力。能夠創建不少的服務器,組成一個服務器的集羣,當用戶訪問網站時,先訪問中間服務器,再從服務器集羣中選擇一個壓力較小的服務器,而後將請求轉發到該服務器,這樣就能夠有效地讓每一個服務器的壓力趨於平衡,儘量的避免服務器崩潰的狀況發生)服務器

4.虛擬主機網絡

(不是必定是nginx的)負載均衡有哪幾種方式?原理是什麼?負載均衡

1.HTTP重定向負載均衡 根據用戶的HTTP請求計算一臺應用集羣中服務器的地址,並將此地址寫入HTTP重定向響應中返回給用戶。

2.DNS域名解析負載均衡 在DNS中配置多個A記錄,每次域名解析請求都會根據負載均衡算法計算一個不一樣的IP地址返回,用戶將會獲得距離最近或者速度最快的一個服務器地址,這樣能夠加快用戶的訪問速度,改善性能。

3.反向代理負載均衡 使用反向代理服務器,它通常在web服務器前面,這個位置也正好是負載均衡服務器的位置,因此大多數反向代理服務器同時也提供負載均衡的功能。

4.網絡層負載均衡

這種方法是在網絡層經過修改請求目標地址進行負載均衡,網絡層在七層網絡層模型的第四層,因此也叫作四層負載均衡,也叫作IP層負載均衡。

請求達到負載均衡服務器後,由負載均衡服務器在操做系統內核進程獲取網絡數據包,根據負載均衡算法獲得一臺真實web服務器的地址,而後修改請求的目的地址到這臺真實的web服務器地址,等到web服務器處理完成後,響應數據包回到負載均衡服務器,再將數據包源地址修改成自身的IP(負載均衡服務器的IP)地址發送給用戶瀏覽器

這裏關鍵在於真實無力web服務器響應數據包如何返回給負載均衡服務器。一種是源地址轉換(SNAT),第二種是負載均衡服務器做爲網關服務器。

網絡層的負載均衡在內核進程完成數據轉發,有更好的性能。可是因爲響應請求的流量要通過負載均衡服務器,容易成爲瓶頸。

5.數據鏈路層負載均衡

數據鏈路層主要處理 mac 地址,因此使用修改mac地址進行轉發請求。負載均衡數據分發過程當中不修改IP地址,只修改mac地址,經過配置真實物理服務器集羣全部機器虛擬IP和負載均衡服務器IP地址一致,從而達到不修改數據包的源地址和目的地址就能夠進行數據分發的目的。因爲web服務器的服務器地址IP和數據請求目的IP地址一致,不須要經過負載均衡服務器進行地址轉換,可將相應數據包直接返回用戶。若是有足夠的公有IP,其實web服務器也能夠直接使用本身的IP響應請求,不過這樣web服務器必須綁定負載均衡的虛擬IP地址(VIP),才能保證web服務器收到來自負載均衡發送的數據包。

這種方式稱做三角傳輸模式,單臂模式,也叫作直接路由方式(DR)。使用DR方式的鏈路層負載均衡是目前大型網站使用最廣的一種負載均衡手段。

相關文章
相關標籤/搜索