新聞中心
Nginx反向代理為什么可以提高網(wǎng)站性能?
其實這個問題是不嚴(yán)謹(jǐn)?shù)模紫任覀冃枰鞔_兩點(diǎn):

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


咨詢
建站咨詢
