Nginx是什么?為什么選擇Nginx做服務器軟件?

2022-10-07    分類: 網(wǎng)站建設

Nginx是什么?為什么選擇Nginx做服務器軟件?

Nginx是什么?為什么選擇Nginx做服務器軟件?有什么優(yōu)勢?

 

1.代理服務器基礎知識

a.代理服務器

一般是指局域網(wǎng)內部的機器通過代理服務器發(fā)送請求到互聯(lián)網(wǎng)上的服務器,代理服務器一般作用在客戶端。應用比如:GoAgent,F(xiàn)Q神器.一個完整的代理請求過程為:客戶端首先與代理服務器創(chuàng)建連接,接著根據(jù)代理服務器所使用的代理協(xié)議,請求對目標服務器創(chuàng)建連接、或者獲得目標服務器的指定資源。 Web代理(proxy)服務器是網(wǎng)絡的中間實體。 代理位于Web客戶端和Web服務器之間,扮演“中間人”的角色。HTTP的代理服務器即是Web服務器又是Web客戶端。代理服務器是介于客戶端和Web服務器之間的另一臺服務器,有了它之后,瀏覽器不是直接到Web服務器去取回網(wǎng)頁而是向代理服務器發(fā)出請求,信號會先送到代理服務器,由代理服務器來取回瀏覽器所需要的信息并傳送給你的瀏覽器。

b.正向代理

是一個位于客戶端和原始服務器(origin server)之間的服務器,為了從原始服務器取得內容,客戶端向代理發(fā)送一個請求并指定目標(原始服務器),然后代理向原始服務器轉交請求并將獲得的內容返回給客戶端。客戶端必須要進行一些特別的設置才能使用正向代理。

c.反向代理

在服務器端接受客戶端的請求,然后把請求分發(fā)給具體的服務器進行處理,然后再將服務器的響應結果反饋給客戶端。Nginx就是其中的一種反向代理服務器軟件。   Nginx:  Nginx ("engine x") ,Nginx (“engine x”) 是俄羅斯人Igor Sysoev(塞索耶夫)編寫的一款高性能的 HTTP 和反向代理服務器。也是一個IMAP/POP3/SMTP代理服務器;也就是說,Nginx本身就可以托管網(wǎng)站,進行HTTP服務處理,也可以作為反向代理服務器使用。

客戶端必須設置正向代理服務器,當然前提是要知道正向代理服務器的IP地址,還有代理程序的端口。

反向代理正好與正向代理相反,對于客戶端而言代理服務器就像是原始服務器,并且客戶端不需要進行任何特別的設置??蛻舳讼蚍聪虼淼拿臻g(name-space)中的內容發(fā)送普通請求,接著反向代理將判斷向何處(原始服務器)轉交請求,并將獲得的內容返回給客戶端。

2.Nginx是什么?為什么選擇Nginx?有什么優(yōu)勢?

Nginx是一個高性能的 HTTP 和 反向代理 服務器,也是一個 IMAP/POP3/SMTP 代理服務器。因它的穩(wěn)定性、豐富的功能集、示例配置文件和低系統(tǒng)資源的消耗而聞名。2011年6月1日,nginx 1.0.4發(fā)布。

基于以下特性選擇Nginx:

a.處理請求相應很快

這表現(xiàn)在兩個方面:一方面,在正常情況下,單次請求會得到更快的響應;另一方面,在高峰期(如有數(shù)以萬計的并發(fā)請求),Nginx可以比其他Web服務器更快地響應請求。

b.高擴展性、跨平臺

Nginx的設計極具擴展性,它完全是由多個不同功能、不同層次、不同類型且耦合度極低的模塊組成。因此,當對某一個模塊修復Bug或進行升級時,可以專注于模塊自身,無須在意其他。而且在HTTP模塊中,還設計了HTTP過濾器模塊:一個正常的HTTP模塊在處理完請求后,會有一串HTTP過濾器模塊對請求的結果進行再處理。這樣,當我們開發(fā)一個新的HTTP模塊時,不但可以使用諸如HTTP核心模塊、events模塊、log模塊等不同層次或者不同類型的模塊,還可以原封不動地復用大量已有的HTTP過濾器模塊。這種低耦合度的優(yōu)秀設計,造就了Nginx龐大的第三方模塊,當然,公開的第三方模塊也如官方發(fā)布的模塊一樣容易使用。

Nginx的模塊都是嵌入到二進制文件中執(zhí)行的,無論官方發(fā)布的模塊還是第三方模塊都是如此。這使得第三方模塊一樣具備極其優(yōu)秀的性能,充分利用Nginx的高并發(fā)特性,因此,許多高流量的網(wǎng)站都傾向于開發(fā)符合自己業(yè)務特性的定制模塊。

c.高可靠性(用于反向代理,宕機的概率極其低微)

高可靠性是我們選擇Nginx的最基本條件,因為Nginx的可靠性是大家有目共睹的,很多家高流量網(wǎng)站都在核心服務器上大規(guī)模使用Nginx。Nginx的高可靠性來自于其核心框架代碼的優(yōu)秀設計、模塊設計的簡單性;另外,官方提供的常用模塊都非常穩(wěn)定,每個worker進程相對獨立,master進程在1個worker進程出錯時可以快速“拉起”新的worker子進程提供服務。

d.低內存消耗

一般情況下,10 000個非活躍的HTTP Keep-Alive連接在Nginx中僅消耗2.5MB的內存,這是Nginx支持高并發(fā)連接的基礎。

e.單機支持10萬以上的并發(fā)連接

這是一個非常重要的特性!隨著互聯(lián)網(wǎng)的迅猛發(fā)展和互聯(lián)網(wǎng)用戶數(shù)量的成倍增長,各大公司、網(wǎng)站都需要應付海量并發(fā)請求,一個能夠在峰值期頂住10萬以上并發(fā)請求的Server,無疑會得到大家的青睞。理論上,Nginx支持的并發(fā)連接上限取決于內存,10萬遠未封頂。當然,能夠及時地處理更多的并發(fā)請求,是與業(yè)務特點緊密相關的。

f.熱部署

master管理進程與worker工作進程的分離設計,使得Nginx能夠提供熱部署功能,即可以在7×24小時不間斷服務的前提下,升級Nginx的可執(zhí)行文件。當然,它也支持不停止服務就更新配置項、更換日志文件等功能。

g.最自由的BSD許可協(xié)議

這是Nginx可以快速發(fā)展的強大動力。BSD許可協(xié)議不只是允許用戶免費使用Nginx,它還允許用戶在自己的項目中直接使用或修改Nginx源碼,然后發(fā)布。這吸引了無數(shù)開發(fā)者繼續(xù)為Nginx貢獻自己的智慧

以上7個特點當然不是Nginx的全部,擁有無數(shù)個官方功能模塊、第三方功能模塊使得Nginx能夠滿足絕大部分應用場景,這些功能模塊間可以疊加以實現(xiàn)更加強大、復雜的功能,有些模塊還支持Nginx與Perl、Lua等腳本語言集成工作,大大提高了開發(fā)效率。這些特點促使用戶在尋找一個Web服務器時更多考慮Nginx。

選擇Nginx的核心理由還是它能在支持高并發(fā)請求的同時保持高效的服務。

網(wǎng)站欄目:Nginx是什么?為什么選擇Nginx做服務器軟件?
網(wǎng)頁URL:http://bm7419.com/news/203140.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、微信公眾號、網(wǎng)站內鏈、云服務器、定制網(wǎng)站商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司