新聞中心
Nginx反向代理為什么可以提高網(wǎng)站性能?
其實(shí)這個(gè)問(wèn)題是不嚴(yán)謹(jǐn)?shù)?,首先我們需要明確兩點(diǎn):

創(chuàng)新互聯(lián)成立于2013年,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元思禮做網(wǎng)站,已為上家服務(wù),為思禮各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
1)很多Web服務(wù)器或容器都可以實(shí)現(xiàn)反向代理;
2)反向代理和網(wǎng)站性能的提升沒(méi)有必然關(guān)系!
為什么現(xiàn)在很多人認(rèn)為用Nginx這類(lèi)Web服務(wù)器做個(gè)反向代理就能提高網(wǎng)站性能了呢?其實(shí),反向代理和網(wǎng)站性能并沒(méi)有必然關(guān)系,有時(shí)候用反向代理的確可以提高網(wǎng)站性能;但如果反向代理使用不當(dāng),反而會(huì)降低網(wǎng)站性能。
之所以很多人誤認(rèn)為反向代理能提升網(wǎng)站性能,究其原因是因?yàn)楝F(xiàn)在很多大型互聯(lián)網(wǎng)平臺(tái)架構(gòu)都會(huì)采用反向代理這種模式,而且很多技術(shù)類(lèi)書(shū)籍文章也會(huì)提到反向代理,所以造成了大家的這種誤解。
反向代理是相對(duì)于正相代理而言的,它是作用于服務(wù)器商的。
在沒(méi)有使用代理之前,客戶端向服務(wù)端請(qǐng)求時(shí),簡(jiǎn)單而言就是:客戶端 => 服務(wù)端。
如果上面的理論描述不太理解也沒(méi)關(guān)系,舉個(gè)簡(jiǎn)單的例子。比如現(xiàn)在很多公司都有客服電話,用戶打這個(gè)電話一般是先經(jīng)過(guò)前臺(tái)的,再由前臺(tái)進(jìn)行轉(zhuǎn)發(fā)至某個(gè)分機(jī),這個(gè)前臺(tái)發(fā)揮的作用就和反向代理一樣。
反向代理最終解決的問(wèn)題是:隱藏了真實(shí)的服務(wù)端!而正向代理則是為了隱藏真實(shí)的客戶端。
反向代理是指nginx作為代理服務(wù)器接受互聯(lián)網(wǎng)用戶的請(qǐng)求,然后將請(qǐng)求轉(zhuǎn)發(fā)給真正的應(yīng)用服務(wù)器進(jìn)行處理,再將處理結(jié)果返回給用戶的過(guò)程。這個(gè)過(guò)程與我們?cè)陔娔X上使用代理服務(wù)器訪問(wèn)互聯(lián)網(wǎng)的行為正好相反,所以被稱(chēng)為反向代理。
咋一看,反向代理增加了中間過(guò)程,理論上說(shuō)只會(huì)降低網(wǎng)站性能,怎么會(huì)提高性能呢?最主要的原因是這種方式會(huì)降低后端應(yīng)用服務(wù)器的網(wǎng)絡(luò)連接時(shí)間,進(jìn)而提升效率。如果互聯(lián)網(wǎng)用戶的直接請(qǐng)求應(yīng)用服務(wù)器,網(wǎng)絡(luò)連接時(shí)間會(huì)大大增加,會(huì)導(dǎo)致資源不能及時(shí)釋放,進(jìn)而降低性能。在反向代理模式下,應(yīng)用服務(wù)器通過(guò)內(nèi)網(wǎng)與nginx連接,網(wǎng)絡(luò)性能和穩(wěn)定性極高,可以及時(shí)釋放資源進(jìn)行后續(xù)處理,性能自然提高,而網(wǎng)絡(luò)連接交給更擅長(zhǎng)處理這個(gè)問(wèn)題的nginx。
題主這個(gè)問(wèn)題的想法應(yīng)該是覺(jué)得加上反向代理后請(qǐng)求路徑會(huì)加上,因此請(qǐng)求的處理時(shí)間會(huì)增加,性能會(huì)有下降。
如果從單個(gè)請(qǐng)求來(lái)說(shuō),的確如此,但僅僅有幾毫秒的影響,對(duì)于普通的人來(lái)說(shuō)幾乎無(wú)法感知到。從另外一方面說(shuō),一個(gè)網(wǎng)站不能僅僅考慮單個(gè)請(qǐng)求的處理情況,而應(yīng)該從整體上進(jìn)行考慮。
Nginx做反向代理最為重要的一點(diǎn)是負(fù)載均衡。也就是將客戶端的請(qǐng)求負(fù)載均衡到后端的若干臺(tái)服務(wù)器上。如下圖所示,一個(gè)Web網(wǎng)站實(shí)際業(yè)務(wù)服務(wù)器的數(shù)量可能是3臺(tái),或者更多,讓后通過(guò)一個(gè)反向代理作為出口。
為什么要做負(fù)載均衡,我們從如下幾方面分析一下:
1. 負(fù)載類(lèi)型,我們知道對(duì)于一個(gè)網(wǎng)站,負(fù)載包括CPU負(fù)載、磁盤(pán)負(fù)載和網(wǎng)絡(luò)負(fù)載等內(nèi)容,以CPU負(fù)載為例,網(wǎng)站的動(dòng)態(tài)腳本需要進(jìn)行運(yùn)行解析,生成最后的頁(yè)面。一臺(tái)服務(wù)器計(jì)算能力有限,因此,必然需要多臺(tái)服務(wù)器形成集群,提高整體的計(jì)算能力。
2. 系統(tǒng)高可用,服務(wù)器故障在所難免,即使在一臺(tái)服務(wù)器能夠勝任工作,但有可能存在任何故障,比如極端的宕機(jī),或者網(wǎng)卡故障和硬盤(pán)故障等。如果服務(wù)器由于某些故障導(dǎo)致反應(yīng)極慢,這樣網(wǎng)站就會(huì)變得很慢。但如果有反向代理,并且有故障診斷,這樣就可以讓正常的服務(wù)器處理請(qǐng)求,對(duì)用戶來(lái)說(shuō),就是性能提升。
因此,即使在不做緩存和靜態(tài)文件的情況下,雖然請(qǐng)求路徑加長(zhǎng)了,單個(gè)請(qǐng)求的耗時(shí)可能會(huì)增加,但從整體上來(lái)說(shuō),還是會(huì)很大的提升網(wǎng)站的性能。
謝邀~
Nginx現(xiàn)在是互聯(lián)網(wǎng)上應(yīng)用廣泛的服務(wù)器軟件,從市場(chǎng)使用量上僅次于Apache。它的主要特點(diǎn)就是性能極高,能充分發(fā)掘一臺(tái)服務(wù)器的性能。相比較而言,Apache就顯得太笨太重了。所以主流的互聯(lián)網(wǎng)(指用戶量比較大的互聯(lián)網(wǎng)公司)都使用Nginx服務(wù)器作為反向代理。
Nginx作為反向代理為什么能夠提供網(wǎng)站性能,因?yàn)樗粌H僅提供反向代理的功能,還有負(fù)載均衡的功能,如下圖所示。每個(gè)請(qǐng)求過(guò)來(lái)之后,Nginx作為負(fù)載均衡,都會(huì)將請(qǐng)求轉(zhuǎn)發(fā)給后端的任意服務(wù)器。(方法有很多,比如輪流,session一致等原則)
所以與其說(shuō)Nginx能提高網(wǎng)站性能,我覺(jué)得是不準(zhǔn)確的。應(yīng)該說(shuō),可以隨著業(yè)務(wù)的房展,可以動(dòng)態(tài)的擴(kuò)展服務(wù)器,這個(gè)我認(rèn)為是非常重要的,能夠穩(wěn)定的保證線上業(yè)務(wù)的發(fā)展。
歡迎大家關(guān)注我~
到此,以上就是小編對(duì)于nginx反向負(fù)載均衡怎么實(shí)現(xiàn)的的問(wèn)題就介紹到這了,希望這1點(diǎn)解答對(duì)大家有用。
分享標(biāo)題:Nginx反向代理為什么可以提高網(wǎng)站性能?(nginx反向負(fù)載均衡怎么實(shí)現(xiàn))
分享路徑:http://m.5511xx.com/article/cdgepog.html


咨詢
建站咨詢
