請問什么叫反向代理和負(fù)載均衡額,關(guān)于Nginx的
問題描述
看百度百科的說明完全不知其所以然,太抽象了,無法理解,希望各位前輩能指導(dǎo)下,謝謝
問題解答
回答1:負(fù)載均衡首先說一下負(fù)載均衡,如果你的網(wǎng)站有大量的用戶訪問,一臺服務(wù)器忙不過來,那么要多臺服務(wù)器才行。但是用戶肯定是通過一個地址去訪問你的網(wǎng)站。你可以通過這個地址做一臺負(fù)載均衡服務(wù)器,把請求平均分配給后臺的多個應(yīng)用服務(wù)器。
那么如何通過一臺負(fù)載均衡服務(wù)器將請求分配給后臺的多個應(yīng)用服務(wù)器,就可以通過反向代理來實現(xiàn)。負(fù)載均衡服務(wù)器并不處理業(yè)務(wù)邏輯。用戶的HTTP請求發(fā)給Nginx,Nginx再把請求發(fā)給后臺的應(yīng)用服務(wù)器,由它來處理請求,處理完成后,HTTP響應(yīng)由應(yīng)用服務(wù)器發(fā)給Nginx,最后發(fā)給客戶端。這就是反向代理。Nginx只是一個橋梁,連接了客戶端和應(yīng)用服務(wù)器(如上圖)。
PS:負(fù)載均衡可以通過反向代理來實現(xiàn),但反向代理不是唯一的實現(xiàn)方式。同時,反向代理可以實現(xiàn)很多功能,并不只是負(fù)載均衡。
最后,給出我寫的一篇博客,幫你入門Nginx:http://xxgblog.com/2015/05/17/nginx-start/
回答2:你寫的 Web App 如果直接暴露給外網(wǎng),外部請求稍微一多,就會處理不過來,新的請求完全得不相應(yīng),而且要面對很多復(fù)雜的網(wǎng)絡(luò)問題(比如慢連接),這時候使用 Nginx 在中間接收外部請求,擋住不好的請求(超時,慢連接),有序轉(zhuǎn)發(fā)給 Web App,這就是反向代理。
當(dāng)請求很大的時候,你會啟動多個服務(wù)器。這時候 Nginx 又可以將請求按照你定的規(guī)則,分發(fā)給不同的服務(wù)器(比如有兩臺服務(wù)器A和B,A 這時候忙碌,B 較空閑,就多分發(fā)一些請求給 B),這就是負(fù)載均衡。
回答3:假設(shè)醫(yī)院有3個醫(yī)生給人看病,他們技術(shù)水平完全一樣,一個護士專門負(fù)責(zé)接待病人。你去看病,找到護士說我要看病,護士檢查3個醫(yī)生的空閑情況,哦,A醫(yī)生排起3個病人了,C醫(yī)生也有2個病人了,B醫(yī)生沒病人,你去B醫(yī)生那里吧。醫(yī)生就是服務(wù)資源,護士就是反向代理,病人就是負(fù)載。負(fù)載均衡就是讓服務(wù)的資源能夠平衡的使用。反向代理就是為了實現(xiàn)負(fù)載均衡。反向代理由很多種調(diào)度算法,比如最簡單的,1個1個分配,第一個病人給A醫(yī)生,第二個病人給B醫(yī)生,第三個病人給C醫(yī)生,第4個病人又給A醫(yī)生...以此類推。還有很多其他算法,可以去了解一下。為什么叫反向代理呢?如果你翻過墻,就知道翻墻是要靠代理服務(wù)器,我們連接代理服務(wù)器,代理服務(wù)器跳轉(zhuǎn)到其他網(wǎng)站,這個可以理解為正向代理。而反向代理恰好相反。可以簡單的理解為正向代理,代理服務(wù)器在客戶端。反向代理,代理服務(wù)器在服務(wù)器端。
另外反向代理不是只有nginx才能干,apache一樣的可以做這個事情。
說得比較糙,按我自己的理解整理的,可能有不對的地方歡迎討論。
