国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 網絡通信 > 正文

中國頂級門戶網站架構分析

2019-11-04 21:15:09
字體:
來源:轉載
供稿:網友

首先聲明,下面的內容都是我個人根據一些工具形成的猜想。并不保證和現實中各大門戶網站所用的架構一摸一樣,不過我認為八九不離十了。

網易、新浪和搜狐在國內的知名度可謂無人不知無人不曉。他們天天的點擊率都在千萬以上。這樣大的訪問量對于網易、搜狐等來說怎樣利用有限的資源讓網民獲得最快的速度成為首要的前提,究竟現在網絡公司已經離開了燒錢的階段,開始了良性發展,每一筆錢砸下去都需要一定回響才行的。另一方面,技術人員要絞盡腦汁,不能讓用戶老是無法訪問、或者訪問速度極慢。這樣就算有再好的編輯、再好的銷售,他們也很難將廣告位賣出去,等待他們的將是關門。當然這些情況都沒有發生,因為他們的技術人員都充分的利用了現有資源并將他們發揮到了極至。說到底就是用squid做web cache server,而apache在squid的后面提供真正的web服務。當然使用這樣的架構必須要保證主頁上大部分都是靜態頁面。這就需要程序員的配合將頁面在反饋給客戶端之前將頁面全部轉換成靜態頁面。好了基本架構就這樣,下面說說我怎么猜到的以及具體的架構:

法寶之一:nslookup

實戰:

nslookup www.sina.com.cn

Server: ns-px.online.sh.cn

Address: 202.96.209.5

Non-authoritative answer:

Name: taurus.sina.com.cn

Addresses: 61.172.201.230, 61.172.201.231, 61.172.201.232, 61.172.201.233

61.172.201.221, 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225

61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229

Aliases: www.sina.com.cn, jupiter.sina.com.cn

這里可以看到新浪在首頁上用到了那么多ip,開始有人會想果然新浪財大氣粗啊。其實不然,繼續往下看:

nslookup news.sina.com.cn

Server: ns-px.online.sh.cn

Address: 202.96.209.5

Non-authoritative answer:

Name: taurus.sina.com.cn

Addresses: 61.172.201.228, 61.172.201.229, 61.172.201.230, 61.172.201.231

61.172.201.232, 61.172.201.233, 61.172.201.221, 61.172.201.222, 61.172.201.223

61.172.201.224, 61.172.201.225, 61.172.201.226, 61.172.201.227

Aliases: news.sina.com.cn, jupiter.sina.com.cn

細心的人可以發現了news這個頻道的ip數和首頁上一樣,而且IP也完全一樣。也就是這些IP在sina的DNS上的名字都叫taurus.sina.com.cn,那些IP都是這個域的A記錄。而news,sports,jczs.news。。。都是CNAME記錄。用DNS來做自動輪詢。還不信,再來一個,就體育頻道好了:

nslookup sports.sina.com.cn

Server: ns-px.online.sh.cn

Address: 202.96.209.5

Non-authoritative answer:

Name: taurus.sina.com.cn

Addresses: 61.172.201.222, 61.172.201.223, 61.172.201.224, 61.172.201.225

61.172.201.226, 61.172.201.227, 61.172.201.228, 61.172.201.229, 61.172.201.230

61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.221

Aliases: sports.sina.com.cn, jupiter.sina.com.cn

其他的可以自己試。好了再來看看sohu的情況:

nslookup www.sohu.com

Server: ns-px.online.sh.cn

Address: 202.96.209.5

Non-authoritative answer:

Name: pagegrp1.sohu.com

Addresses: 61.135.132.172, 61.135.132.173, 61.135.132.176, 61.135.133.109

61.135.145.47, 61.135.150.65, 61.135.150.67, 61.135.150.69, 61.135.150.74

61.135.150.75, 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180

61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80

Aliases: www.sohu.com

--------------------------------------------

nslookup news.sohu.com

Server: ns-px.online.sh.cn

Address: 202.96.209.5

Non-authoritative answer:

Name: pagegrp1.sohu.com

Addresses: 61.135.150.145, 61.135.131.73, 61.135.131.91, 61.135.131.180

61.135.131.182, 61.135.131.183, 61.135.132.65, 61.135.132.80, 61.135.132.172


61.135.132.173, 61.135.132.176, 61.135.133.109, 61.135.145.47, 61.135.150.65

61.135.150.67, 61.135.150.69, 61.135.150.74, 61.135.150.75

Aliases: news.sohu.com

情況和sina一樣,只是從表面來看sohu的IP數要多于sina的IP數,那么sohu上各個頻道用的服務器就要多于sina了?當然不能這么說,因為一臺服務器可以綁定多個IP,因此不能從IP數的多少來判定用了多少服務器。

從上面這些實驗可以基本看出sina和sohu對于頻道等欄目都用了相同的技術,即squid來監聽這些IP的80端口,而真正的web server來監聽另外一個端口。從用戶的感覺上來說不會有任何的區別,而相對于將web server直接和客戶端連在一起的方式,這樣的方式明顯的節省的帶寬和服務器。用戶訪問的速度感覺也會更快。

1. 難道就根據幾個域名的ip相同就可以證實他們是使用squid的嘛?

當然不是,前面都只是推測。下面才是真正的證實我上面的猜測。先nslookup一把sina的體育頻道。

nslookup sports.sina.com.cn

Server: ns1.china.com

Address: 61.151.243.136

Non-authoritative answer:

Name: taurus.sina.com.cn

Addresses:61.172.201.231, 61.172.201.232, 61.172.201.233, 61.172.201.9

61.172.201.10, 61.172.201.11, 61.172.201.12, 61.172.201.13, 61.172.201.14

61.172.201.15, 61.172.201.16, 61.172.201.17, 61.172.201.227, 61.172.201.228

61.172.201.229, 61.172.201.230

Aliases: sports.sina.com.cn, jupiter.sina.com.cn

然后直接訪問這些ip中的任意一個ip試試看,訪問下來的結果應該是如下圖所示:

中國頂級門戶網站架構分析

由此可以證實sina是在dns中設置了很多ip來指向域名sqsh-19.sina.com.cn,而其他各種相同性質的頻道都只是sqsh-19.sina.com.cn一個別名,用CNAME指定。dns的設置應該是這樣的,然后server方面,通過squid 2.5.STABLE5(最新的穩定版為STABLE6)來偵聽80端口。上面這些是根據一些信息分析而出的,應該基本正確的。下面一些就是我的個人的猜想:

它的真正的web server也同樣是偵聽80端口,因為在squid配置文件中有一項是:

httpd_accel_port 80

假如你設成其他端口號(比如88)的話,那上圖的錯誤信息就會變成

While trying to retrieve the URL: http://61.172.201.19:88

工具2:nmap掃描程序:可以用來檢查服務器開了什么端口。

我現在用nmap來掃描sina的一個ip:61.172.201.19來進行分析

bash-2.05$ nmap 61.172.201.19

Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2004-07-30 13:31 GMT

Interesting ports on 61.172.201.19:

(The 1657 ports scanned but not shown below are in state: filtered)

PORT STATE SERVICE

22/tcp open ssh

80/tcp open http

Nmap run completed -- 1 IP address (1 host up) scanned in 73.191 seconds

可以看到他對外只開了2個端口,80端口就是剛才我們說的squid打開的,這點剛才已經驗證過了。而22端口是用來ssh遠程連接的,主要是sa用來遠程操作服務器用的安全性非常高的方法。

工具3:lynx或者其他可以讀取http頭文件的工具及小程序:

直接看例子比較好理解:

HTTP/1.0 200 OK

Date: Fri, 30 Jul 2004 05:49:47 GMT

Server: Apache/2.0.49 (Unix)

Last-Modified: Fri, 30 Jul 2004 05:48:16 GMT

Accept-Ranges: bytes

Vary: Accept-Encoding

Cache-Control: max-age=60

EXPires: Fri, 30 Jul 2004 05:50:47 GMT

Content-Length: 180747

Content-Type: text/Html


Age: 37

X-Cache: HIT from sqsh-230.sina.com.cn

Connection: close

上面是sina的http頭的反饋信息。里面有很多有價值的東東哦:)譬如,它后面的apache是用2.0.49,還設了過期時間為2分鐘。最后修改時間。這些都是要在編譯apache的時候載入的,非凡是Last-Modified還需要小小的改一把源碼--至少我是這樣做的。

綜上所述

sina的架構應該是前面squid,按照現在的服務器2u,2g內存一般每臺服務器至少可以跑4個squid2.5stable5. 這樣它16個ip就用了4臺服務器。后面一層是apache2.0.49應該會用2臺。這2臺可能用的全是私有ip,通過前面的squid服務器在hosts文件中指定。具體的實現方法我會下次整理出我做實驗的文檔:)而apache的htdocs可能是有一個或2個磁盤陣列作nfs。apache mount nfs server的時候應該是只讀的,然后另外還有服務器轉門用來做編輯器服務器,用來編輯人員更新文章。這臺服務器應該對nfs server是具有可寫的權限。

----這就一套完整的sina所運用的方案,當然很多是靠猜測的,我沒有和sina的技術人員有過任何溝通(因為一個也不熟悉),否則我也就不會寫出來了。其他sohu,163應該也有這樣的架構。

最后聲明:這只是一些靜態頁面組成頻道的一個架構,sina還有很多其他服務器,什么下載,在線更新等不在這個架構中。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 安新县| 巴林右旗| 娄烦县| 辽宁省| 呼和浩特市| 夏津县| 通江县| 长武县| 竹山县| 衡阳市| 梓潼县| 紫金县| 建阳市| 滦南县| 达拉特旗| 水城县| 威海市| 大同县| 衡东县| 博乐市| 驻马店市| 子洲县| 金秀| 汝城县| 北川| 苏尼特右旗| 黑水县| 金沙县| 大方县| 黑水县| 那曲县| 哈巴河县| 义乌市| 康定县| 沙洋县| 本溪市| 武威市| 惠州市| 宽甸| 汕头市| 专栏|