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

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

前天講了最基本的推測方法,今天稍微深入一些:)
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還有很多其他服務器,什麼下載,在線更新等不在這個架構中。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章