NGINX伺服器有什麼作用?什麼叫反向代理?為什麼要使用反向代理?

weixin_41315469發表於2018-04-26

大家好,我是IT修真院深圳分院第5期學員,一枚正直善良的JAVA程式設計師。

今天給大家分享一下,修真院官網JAVA任務3中,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服務,可以做到流量的均勻分擔,從而減少單機伺服器的壓力。


騰訊視訊

感謝大家觀看

今天的分享就到這裡啦,歡迎大家點贊、轉發、留言、拍磚~

技能樹.IT修真院

“我們相信人人都可以成為一個工程師,現在開始,找個師兄,帶你入門,掌控自己學習的節奏,學習的路上不再迷茫”。

這裡是技能樹.IT修真院,成千上萬的師兄在這裡找到了自己的學習路線,學習透明化,成長可見化,師兄1對1免費指導。快來與我一起學習吧~

我的邀請碼:19214843,

或者你可以直接點選此連結:http://www.jnshu.com/login/1/19214843

相關文章