1、背景介紹nginx
Nginx (engine x) 是一個高性能的HTTP和反向代理服務器,Nginx是一款輕量級的Web 服務器/反向代理服務器及電子郵件代理服務器。其特色是佔有內存少,併發能力強,事實上nginx的併發能力確實在同類型的網頁服務器中表現較好,中國大陸使用nginx網站用戶有:百度、京東、新浪、網易、騰訊、淘寶等。正則表達式
二.知識剖析算法
1.代理服務器安全
通常是指局域網內部的機器經過代理服務器發送請求到互聯網上的服務器,代理服務器通常做用在客戶端。 一個完整的代理請求過程爲:客戶端首先與代理服務器建立鏈接,接着根據代理服務器所使用的代理協議,請求對目標服務器建立鏈接、或者得到目標服務器的指定資源。 Web代理(proxy)服務器是網絡的中間實體。 代理位於Web客戶端和Web服務器之間,扮演「中間人」的角色。HTTP的代理服務器便是Web服務器又是Web客戶端。服務器
2.正向代理網絡
正向代理 是一個位於客戶端和原始服務器(origin server)之間的服務器,爲了從原始服務器取得內容,客戶端向代理髮送一個請求並指定目標(原始服務器),而後代理向原始服務器轉交請求並將得到的內容返回給客戶端。客戶端必需要進行一些特別的設置才能使用正向代理。併發
3.反向代理負載均衡
反向代理 在計算機世界裏,因爲單個服務器的處理客戶端(用戶)請求能力有一個極限,當用戶的接入請求蜂擁而入時,會形成服務器忙不過來的局面,可使用多個服務器來共同分擔成千上萬的用戶請求,這些服務器提供相同的服務,對於用戶來講,根本感受不到任何差異。在服務器端接受客戶端的請求,而後把請求分發給具體的服務器進行處理,而後再將服務器的響應結果反饋給客戶端。dom
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指令在接到請求後的匹配順序分別爲:
一、準確的server_name匹配
二、以*通配符開始的字符串
三、以*通配符結束的字符串
四、匹配正則表達式:
3.反向代理和負載均衡有何區別?
答:反向代理是實現負載均衡的一種方法。先談反向代理。用戶在請求時,先把請求發送給代理的服務器,而後由代理服務器根據算法去請求真實的服務器,最後返回給用戶。這種作法,其一是提升了安全性;其二是經過多臺的real server分擔了用戶的請求,實現了負載均衡。再談負載均衡。負載均衡的出現,是經過橫向的擴展,儘量地下降單臺服務器的壓力。常見WEB層面的負載均衡的方案有硬件F五、Nginx代理、LVS、各個雲商的負載均衡服務(如AWS的ELB服務)等。負載均衡後面連的通常是實際提供服務的服務器,如經過ELB服務,能夠作到流量的均勻分擔,從而減小單機服務器的壓力。