02 轉》nginx的作用和功能

2022-06-06 12:27:09 字數 3657 閱讀 7040

一:介紹

nginx是乙個高效能的http和反向**伺服器,其特點是占用記憶體少,併發能力強.

二:名詞介紹

**伺服器:

**伺服器英文全稱是proxy server,其功能就是**網路使用者去取得網路資訊。形象的說:它是網路資訊的中轉站,去獲取資訊。

主要的功能有:

1.突破自身ip訪問限制,訪問國外站點。教育網、169網等網路使用者可以通過**訪問國外**。

3.突破中國電信的ip封鎖:中國電信使用者有很多**是被限制訪問的,這種 限制是人為的,不同serve對位址的封鎖是不同的。所以不能訪問時可以換乙個國 外的**伺服器試試。

4.提高訪問速度:通常**伺服器都設定乙個較大的硬碟緩衝區,當有外界 的資訊通過時,同時也將其儲存到緩衝區中,當其他使用者再訪問相同的資訊時, 則直接由緩衝區中取出資訊,傳給使用者,以提高訪問速度。

5.隱藏真實ip:上網者也可以通過這種方法隱藏自己的ip,免受攻擊.

反向**

客戶端(使用者a)向反向**的命名空間(name-space)中的內容傳送普通請求,接著反向**將判斷向何處(原始伺服器)轉交請求,並將獲得的內容返回給客戶端。而客戶端始終認為它訪問的是原始伺服器b而不是伺服器z。由於防火牆作用,只允許伺服器z進出,防火牆和反向**共同作用保護了院子資源伺服器b。

用途:將防火牆後面的伺服器提供給internet使用者訪問。反向**還可以為後端的多台伺服器提供負載平衡或為後端較慢的伺服器提供緩衝服務。

正向**

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

用途:在防火牆內的區域網客戶端提供訪問internet的途徑。還可以使用緩衝特性減少網路使用率。

從安全性來講:

正向**允許客戶端通過它訪問任意**並且隱藏客戶端自身,因此你必須採取安全措施以確保僅為經過授權的客戶端提供服務。

反向**對外都是透明的,訪問者並不知道自己訪問的是乙個**。

正向**:簡單的說,我是乙個使用者,我訪問不了goole,但是我能訪問乙個**伺服器,這個**伺服器呢,他能訪問那個我不能訪問的**,於是我先連上**伺服器,告訴他我需要那個無法訪問**的內容,**伺服器去取回來,然後返回給我。從**的角度,只在**伺服器來取內容的時候有一次記錄。結論就是,正向**,是乙個位於客戶端和原始伺服器之間的伺服器,為了從原始伺服器取得內容,客戶端向**傳送乙個請求並指定目標(原始伺服器),然後**向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設定才能使用正向**。

,當我們訪問 www.baidu.com 的時候,就像撥打 10086 一樣,背後可能有成千上萬臺伺服器為我們服務,但具體是哪一台,你不知道,也不需要知道,你只需要知道反向**伺服器是誰就好了,www.baidu.com 就是我們的反向**伺服器,反向**伺服器會幫我們把請求**到提供真實計算的伺服器那裡去。

在計算機網路中,反向**是**伺服器的一種。伺服器根據客戶端的請求,從其關係的一組或多組後端伺服器(如web伺服器)上獲取資源,然後再將這些資源返回給客戶端,客戶端只會得知反向**的ip位址,而不知道在**伺服器後面的伺服器集群的存在。

囉裡囉嗦抓重點總結:

無論正向**或者是反向**,都是客戶端通過**伺服器去訪問原始伺服器,只是客戶端和原始服務端的動機立場不同,正向**是客戶端找了**去訪問,反向**是原始服務端找了**去應對客戶端的訪問。

正向**是客戶端訪問乙個他自己直接訪問不了的**,那麼他就要借助**伺服器讓**幫他,並告訴這個**伺服器他要訪問誰,他有明確目標的。

正向和反向**的本質區別就是客戶端訪問乙個**的時候,他有沒有碰壁(訪問不了),如果碰壁了,他就知道:哦!他有自己明確的目標了,那就找個**把,對於伺服器來說,他並不知道客戶端是誰,他只知道**是哪位。這是發生在客戶端與**伺服器的資訊交換,簡單說是正向**發生在客戶端,這就是正向**;反向**就是客戶端沒碰壁(他覺得他是對的),能直接訪問,其實是原始伺服器找了**,讓**他自己,這是發生在服務端之間的資訊交換,瀏覽器不知道具體是哪個伺服器給他的資源,他只知道**是誰,反向**是發生在原始伺服器與**伺服器之間的資訊交換,簡單說反向**發生在服務端

靈魂畫家,全體起立,鼓掌!~

負載均衡

就是將伺服器接收到的請求按照規則進行分發的過程.

nginx支援的負載均衡排程演算法方式如下:

1.weight輪詢(預設):接收到的請求按照順序逐一分配到不同的後端伺服器,即使在使用過程中,某一台後端伺服器宕機,nginx會自動將該伺服器剔除出佇列,請求受理情況不會受到任何影響。 這種方式下,可以給不同的後端伺服器設定乙個權重值(weight),用於調整不同的伺服器上請求的分配率;權重資料越大,被分配到請求的機率越大;該權重值,主要是針對實際工作環境中不同的後端伺服器硬體配置進行調整的。

2.ip_hash:每個請求按照發起客戶端的ip的hash結果進行匹配,這樣的演算法下乙個固定ip位址的客戶端總會訪問到同乙個後端伺服器,這也在一定程度上解決了集群部署環境下session共享的問題。

3.fair:智慧型調整排程演算法,動態的根據後端伺服器的請求處理到響應的時間進行均衡分配,響應時間短處理效率高的伺服器分配到請求的概率高,響應時間長處理效率低的伺服器分配到的請求少;結合了前兩者的優點的一種排程演算法。但是需要注意的是nginx預設不支援fair演算法,如果要使用這種排程演算法,請安裝upstream_fair模組。

4.url_hash:按照訪問的url的hash結果分配請求,每個請求的url會指向後端固定的某個伺服器,可以在nginx作為靜態伺服器的情況下提高快取效率。同樣要注意nginx預設不支援這種排程演算法,要使用的話需要安裝nginx的hash軟體包。

三:nginx優勢

1、作為web伺服器,nginx處理靜態檔案、索引檔案,自動索引的效率非常高

2、作為**伺服器,nginx可以實現無快取的反向**加速,提高**執行速度

3、作為負載均衡伺服器,nginx既可以在內部直接支援rails和php,也可以支援http**伺服器對外進行服務,同時還支援簡單的容錯和利用演算法進行負載均衡

4、在效能方面,nginx是專門為效能優化而開發的,實現上非常注重效率。它採用核心poll模型,可以支援更多的併發連線,最大可以支援對5萬個併發連線數的響應,而且只占用很低的記憶體資源

5、在穩定性方面,nginx採取了分階段資源分配技術,使得cpu與記憶體的佔用率非常低。nginx官方表示,nginx保持1萬個沒有活動的連線,而這些連線只占用2.5mb記憶體,因此,類似dos這樣的攻擊對nginx來說基本上是沒有任何作用的

6、在高可用性方面,nginx支援熱部署,啟動速度特別迅速,因此可以在不間斷服務的情況下,對軟體版本或者配置進行公升級,即使執行數月也無需重新啟動,幾乎可以做到7x24小時不間斷地執行

**:

Nginx 主要作用 功能

nginx是乙個輕量級 高效能 穩定性高 併發性好的http和反向 伺服器。也是由於其的特性,其應用非常廣。正向 某些情況下,我們使用者去訪問伺服器,需要使用者手動的設定 伺服器的ip和埠號。反向 是用來 伺服器的,我們要訪問的目標伺服器。伺服器接受請求,然後將請求 給內部網路的伺服器 集群化 並將...

Nginx 主要作用 功能

nginx是乙個輕量級 高效能 穩定性高 併發性好的http和反向 伺服器。也是由於其的特性,其應用非常廣。正向 某些情況下,我們使用者去訪問伺服器,需要使用者手動的設定 伺服器的ip和埠號。反向 是用來 伺服器的,我們要訪問的目標伺服器。伺服器接受請求,然後將請求 給內部網路的伺服器 集群化 並將...

數字簽名的作用和功能

資訊傳輸過程中,單純採用加密來保證資料的保密性,實際上還存在缺陷,假如傳送方在傳送某個資訊後突然反悔,宣告這個資訊不是其傳送,進行抵賴,雖然資料傳輸過程中是保密的,但無法證明這個資訊的傳送方身份,這樣不利於通訊的管理。現實中,一般採用簽名的方式,使資訊不可抵賴,例如,合同談判 銀行取款等,都採用了使...