域名主機(jī)服務(wù)器ip網(wǎng)卡與網(wǎng)站之間的關(guān)系是什么?
關(guān)于這個(gè)問題,我們從用戶訪問一個(gè)網(wǎng)站的整個(gè)過程來實(shí)例說明這些概念。
用戶要訪問一個(gè)網(wǎng)站(假設(shè)今日頭條),第一步要做的是啥,用電腦或者手機(jī)瀏覽器(不是頭條APP)輸入頭條的地址"https://www.toutiao.com",這個(gè)第一部分https是指https協(xié)議,是安全的http訪問協(xié)議。://是固定表達(dá)。最后的"www.toutiao.com"就是頭條的域名,這就是我們通常說的網(wǎng)站域名。
域名:A記錄,CNAME,子域名,根域名,頂級(jí)域名其實(shí)這個(gè)域名還可以細(xì)分為三部分,www為根域名的一個(gè)A記錄(一般小網(wǎng)站,直接解析成IP)、CNAME(跳轉(zhuǎn)到其他域名)或者"www.toutiao.com"為一個(gè)子域名(可以配自己的A記錄、CNAME);
"toutiao.com"才是頭條的根域名;
".com"也是一個(gè)域名,我們叫它頂級(jí)域名。好了關(guān)于域名就說這些。
DNS,遞歸解析瀏覽器收到輸入的url,解析出來域名,去請(qǐng)求各級(jí)dns(域名解析服務(wù)),請(qǐng)求過程多級(jí)遞歸解析,dns會(huì)把域名轉(zhuǎn)化為ip(由用戶在域名商設(shè)置,或者自己的dns設(shè)置)返回給瀏覽器,瀏覽器再給這個(gè)ip發(fā)出http請(qǐng)求。
回答問題1和問題3問題1的答案在這,大型網(wǎng)站域名對(duì)應(yīng)不是一個(gè)IP,多個(gè)IP是這樣對(duì)應(yīng)的:
首先第一層是智能域名解析,根據(jù)訪問用戶的ip,選擇一個(gè)鏈路最近服務(wù)器ip。這個(gè)ip為負(fù)載均衡的vip,這就是第二層負(fù)載均衡。
由負(fù)載均衡調(diào)度到不同的實(shí)體服務(wù)器,這為第三層CDN或者反向代理。
由反向代理再到web應(yīng)用服務(wù)器,這是第四層,通常小網(wǎng)站域名直接解析到這個(gè)ip,沒有前面三層。
實(shí)體服務(wù)器請(qǐng)求應(yīng)用服務(wù)器(一臺(tái)或者多臺(tái)),這是第五層。
應(yīng)用服務(wù)器根據(jù)需要訪問數(shù)據(jù)庫(kù)服務(wù)器,或者文件服務(wù)器(比如圖片服務(wù)器),這是第六層。
第六層。或者前面幾層中的數(shù)據(jù)可能訪問硬盤或者專門存儲(chǔ),一般來說存儲(chǔ)或者各層都是高可用設(shè)計(jì),都有冗余,故障時(shí)候可以自動(dòng)切換。
在上述的負(fù)載均衡或者代理層,都是一個(gè)ip(vip或者代理ip)可對(duì)應(yīng)多個(gè)ip。走lvs有三種模式其中直接路由dr模式,必須后面主機(jī)都要有公網(wǎng)ip。nat方式(代理也是走這種方式),可為公網(wǎng)ip或者內(nèi)網(wǎng)IP。
IP,主機(jī)、WEB服務(wù)器、網(wǎng)站這個(gè)ip有可能是cdn、負(fù)載均衡vip、代理啥的,最終會(huì)轉(zhuǎn)發(fā)請(qǐng)求到實(shí)體機(jī)器,這個(gè)機(jī)器上的web服務(wù)器,比如nginx,apache等會(huì)響應(yīng)請(qǐng)求,從服務(wù)器中取出需要的數(shù)據(jù)返回,瀏覽器收到數(shù)據(jù)(html信息)然后呈現(xiàn)出內(nèi)容來,就是頭條的首頁(yè)。頭條首頁(yè)再鏈接到其他頁(yè)面,這許多頁(yè)組到一起就是一個(gè)網(wǎng)站。這就是ip、主機(jī)服務(wù)器和網(wǎng)站。
回答問題2在web服務(wù)器中可以設(shè)置不同的站點(diǎn)host,即域名,所以可以配置多個(gè)域名,對(duì)應(yīng)不同的站點(diǎn)目錄,不同的應(yīng)用服務(wù)器(對(duì)應(yīng)php,java等),不同的數(shù)據(jù)庫(kù)(多個(gè)庫(kù),或者表)。這些都可以通過程序在web設(shè)置對(duì)應(yīng)到空間商的管理后臺(tái)。常用的軟件有cPanel,WHM。
網(wǎng)絡(luò)分層和網(wǎng)卡我們上面說的呈現(xiàn)頁(yè)面的數(shù)據(jù)(html,其實(shí)上也包括css還有js)都是網(wǎng)絡(luò)高層應(yīng)用層的內(nèi)容。而實(shí)際上信息在網(wǎng)絡(luò)中傳輸?shù)臅r(shí)候是2進(jìn)制數(shù)據(jù)(物理層),二進(jìn)制打包成tcp/ip信息包(網(wǎng)絡(luò)層),這些包從物理線路上的二進(jìn)制數(shù)據(jù)傳到主機(jī)時(shí)候打包然后給網(wǎng)卡處理,網(wǎng)卡把這些tcp/ip包根據(jù)順序連到一起再傳給上層的應(yīng)用層(web服務(wù)器或?yàn)g覽器)。這就是網(wǎng)卡的作用,接受和處理tcp包。
四層網(wǎng)絡(luò)結(jié)構(gòu)
OSI七層網(wǎng)絡(luò)結(jié)構(gòu)
好了,整個(gè)訪問的詳細(xì)流程清楚了,這些概念也就清楚了。實(shí)際上每一個(gè)概念都可以展開大篇幅論述,但是那就不是這個(gè)回答要說的了,大家如果感興趣請(qǐng)關(guān)注蟲蟲,給蟲蟲留言,蟲蟲會(huì)在合適時(shí)候給大家細(xì)說。