首頁  >  文章  >  運維  >  nginx反向代理什麼意思

nginx反向代理什麼意思

步履不停
步履不停原創
2019-06-20 15:16:393346瀏覽

nginx反向代理什麼意思

一、背景介紹

Nginx (engine x) 是一個高效能的HTTP與反向代理伺服器,Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件代理伺服器。其特點是佔有內存少,並發能力強,事實上nginx的並發能力確實在同類型的網頁伺服器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。

二.知識剖析

1.代理伺服器

一般是指區域網路內部的機器透過代理伺服器傳送請求到網際網路上的伺服器,代理伺服器一般作用在客戶端。一個完整的代理請求流程為:客戶端先與代理伺服器建立連接,接著根據代理伺服器所使用的代理協議,請求對目標伺服器建立連接、或取得目標伺服器的指定資源。 Web代理程式(proxy)伺服器是網路的中間實體。代理程式位於Web客戶端和Web伺服器之間,扮演「中間人」的角色。 HTTP的代理伺服器即是Web伺服器又是Web客戶端。

2.正向代理程式

正向代理程式是位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理程式傳送一個請求並指定目標(原始伺服器),然後代理程式向原始伺服器轉交請求並將獲得的內容傳回給客戶端。客戶端必須要進行一些特別的設定才能使用正向代理。

3.反向代理

反向代理在電腦世界裡,由於單一伺服器的處理客戶端(使用者)請求能力有一個極限,當使用者的存取請求蜂擁而入時,會造成伺服器忙不過來的局面,可以使用多個伺服器來共同分擔成千上萬的用戶請求,這些伺服器提供相同的服務,對於用戶來說,根本感覺不到任何差別。在伺服器端接受客戶端的請求,然後把請求分發給特定的伺服器進行處理,然後再將伺服器的回應結果回饋給客戶端。

4.反向代理的實作

1)需要有一個負載平衡設備來分發使用者請求,將使用者請求分發到空閒的伺服器上;

2)伺服器返回自己的服務到負載平衡設備;

3)負載平衡將伺服器的服務傳回使用者;

三.常見問題

1.正向代理與反向代理有什麼區別

2.為什麼使用反向代理

四.解決方案

答案:1.兩者的差異在於代理的物件不一樣:正向代理代理的物件是客戶端,反向代理代理的物件是服務端。

答:2.方便伺服器分佈擴充。在實際中單一伺服器處理客戶端請求能力有一個極限,當請求量過大,則伺服器忙不過來,因此使用多個伺服器來共同分擔使用者的請求處理,這些伺服器提供相同的服務,對於使用者來說沒有差別。那麼就需要一個負載平衡設備來分發用戶的請求到空閒的伺服器上,然後伺服器返回結果到負載平衡設備上,負載平衡再將其回傳給用戶。這樣當增加/移除某台伺服器時,只需要修改負載平衡的伺服器列表,而不會影響伺服器;安全性。避免ip和連接埠直接暴露在internet,使主機免於被開採安全漏洞,代理伺服器數量有限,安全防護更方便。

五、參考文獻

百度,書籍

六.更多討論

1. 負載幾種演算法?

答:輪詢(Round Robin)法,隨機(Random)法,來源位址雜湊(Hash)法,加權輪詢(Weight Round Robin)法,加權隨機(Weight Random)法,最小連線數(Least Connections)法。

2.設定裡面哪個server name什麼意思?

答案:

Nginx中的server_name指令主要用於配置基於名稱的虛擬主機,server_name指令在接到請求後的匹配順序分別為:

1、準確的server_name匹配

2、以*通配符開始的字串

3、以*通配符結束的字串

4、匹配正規表示式:

3.反向代理與負載平衡有何不同?

答:反向代理是實現負載平衡的一種方法。先談反向代理。使用者在請求時,先把請求發送給代理的伺服器,然後由代理伺服器根據演算法去請求真實的伺服器,最後再回傳給使用者。這種做法,其一是提高了安全性;其二是透過多台的real server分擔了使用者的請求,實現了負載平衡。再談負載平衡。負載平衡的出現,是透過橫向的擴展,盡可能降低單一伺服器的壓力。常見WEB層面的負載平衡的方案有硬體F5、Nginx代理、LVS、各個雲端商的負載平衡服務(如AWS的ELB服務)等。負載平衡後面連的一般是實際提供服務的伺服器,如透過ELB服務,可以做到流量的平均分擔,從而減少單機伺服器的壓力。

更多Nginx相關技術文章,請造訪Nginx教學#欄位學習!

以上是nginx反向代理什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn