前面一篇文章《
session一致性架構(gòu)設(shè)計(jì)實(shí)踐》,對(duì)于其中的第三種“反向代理hash法”,不少同學(xué)留言問(wèn):
?什么是四層反向代理hash
?什么是七層反向代理hash
?中間還有三層那里去了
?...
今天花幾分鐘簡(jiǎn)單和大家解釋一下。
場(chǎng)景:
訪(fǎng)問(wèn)用戶(hù)通過(guò)proxy請(qǐng)求被訪(fǎng)問(wèn)的真實(shí)服務(wù)器
路徑:用戶(hù) ->
proxy -> real-server
什么是代理?回答:
[proxy]代表[訪(fǎng)問(wèn)用戶(hù)],此時(shí)proxy是
代理。
例如:
在家訪(fǎng)問(wèn)xxoo網(wǎng)站,不希望xxoo網(wǎng)站trace到我們的真實(shí)ip,于是就找一個(gè)proxy,通過(guò)proxy來(lái)訪(fǎng)問(wèn),
此時(shí)proxy代表用戶(hù),
網(wǎng)站以為proxy的ip就是用戶(hù)的ip。
什么是反向代理?回答:
[proxy]代表[被訪(fǎng)問(wèn)的服務(wù)器],此時(shí)proxy是
反向代理。
例如:
web-server希望對(duì)用戶(hù)屏蔽高可用、屏蔽web-server擴(kuò)展、web-server內(nèi)網(wǎng)ip等細(xì)節(jié),于是就找了一個(gè)proxy隔在中間,
此時(shí)proxy代表web-server集群,
用戶(hù)以為proxy的ip就是被訪(fǎng)問(wèn)web-server的ip(web-server是集群,具體訪(fǎng)問(wèn)了哪個(gè)web-server,用戶(hù)不知道),由于web-server集群有多臺(tái),此時(shí)反向代理服務(wù)器要具備
負(fù)載均衡的功能。
一般怎么做反向代理,負(fù)載均衡?回答:nginx/apache,lvs,F(xiàn)5
什么是四層(轉(zhuǎn)發(fā)/交換),什么是七層(轉(zhuǎn)發(fā)/交換)?回答:這個(gè)是來(lái)源于
OSI七層模型大學(xué)“計(jì)算機(jī)網(wǎng)絡(luò)”課程,之前都是用這個(gè)七層模型,新版教程用TCP/IP五層模型,這兩個(gè)模型之間有一個(gè)
對(duì)應(yīng)關(guān)系如下:

可以看到,
四層是指?jìng)鬏攲?/span>,七層是指應(yīng)用層。
更具體的,對(duì)應(yīng)到nginx反向代理hash:
?四層:根據(jù)用戶(hù)ip+port來(lái)做hash
?七層:根據(jù)http協(xié)議中的某些屬性來(lái)做hash
為什么中間少了幾層?
回答:OSI應(yīng)用層、表示層、會(huì)話(huà)層合并到TCP/IP的應(yīng)用層啦。
上面有四層,七層,那有沒(méi)有二層,三層呢?
回答:有
?二層:根據(jù)數(shù)據(jù)鏈路層MAC地址完成數(shù)據(jù)交換
?三層:根據(jù)網(wǎng)絡(luò)層IP地址完成數(shù)據(jù)交換
希望解答了大伙之前的一些疑問(wèn),希望這一分鐘沒(méi)有浪費(fèi),如果有描述不準(zhǔn)確的地方,歡迎指正。
更多建議: