讓電信,網通用戶都能夠訪問你的網站

前幾天,師弟說那個醞釀了好久的微博終於上線,首先應該恭喜一下。開發過程可謂是一波三折,我參與了其中,但是沒有堅持下去,我也是很無奈的,因爲需要找工,實習,畢業時刻,事情諸多。

 

但是現在問題時只有教育網用戶可以訪問,這是無疑的,因爲現在服務器我估計是放在學校經貿學院的機房裏面(我曾經搗鼓過,好像是windows server)。教育網算是一個大型局域網,電信網通用戶肯定是訪問不了的。另外電信,網通也算是大型局域網,他們之間的互聯幹線帶寬是很小的,因爲奧運會的原因,幹線帶寬也擴大了一些,但是相對整個互聯網的數據量來說,這是很小的。

 

他的問題是:現在要怎麼讓網通,電信的用戶都能快速訪問到微博。我就知道大概的原理,也沒有跟dns廠商交涉過,也沒有買過域名,ip。當時我是這種想法,如下圖:

 

雙線雙ip

 

 

 

當然還有更簡單的,更實際些的,就是找到IDC公司,買一個虛擬主機就行了,一般情況下,IDC公司都可以讓你的網站能夠被電信,網通用戶訪問到的,其實現原理也可能是基於雙線雙ip的。

 

虛擬主機是什麼呢?你的電腦上安裝apache服務器,或者nginx服務器,或者其他web服務器,這是一個真實主機。你可以在apache的配置文件中使用命令virtualhost命令虛擬出n個虛擬主機,nginx的配置文件中使用server命令也可以虛擬出n個虛擬主機。(nginx的配置相對簡單,而且性能相當好,因爲它基於線程的方式去處理http請求,另外就是使用epoll IO模型。)

 

一個虛擬主機對應一個域名。一臺apache或者nginx服務器可以安裝多個虛擬主機。這樣IDC公司就可以託管多個域名,比如www.zhong.com,www.jonda.com;反應快的人,可能會想到一個問題:假如電信用戶,同時訪問www.zhong.comwww.jonda.com ;這會有什麼問題?服務器怎麼識別這2個不同的域名的呢?這問題是很自然的,因爲2個域名是在同一個ip的主機裏面的。

 

訪問的過程是這樣的:www.zhong.comwww.jonda.com 都被電信dns解析到IDC的某臺機器上的ip地址(假如222.1.1.3),然後電信用戶的瀏覽器與IDC的服務器經過3次握手建立tcp連接,因爲同時訪問2個域名,所以最少有2tcp連接。建立連接後,開始發送數據包。建立連接的過程只發送tcp數據包,沒有應用層的數據,所以服務器是不可能知道哪個連接是要要請求哪個域名的,它只是純粹的接受並確認tcp連接。所以,肯定是應用層裏面有某個東西在標識需要訪問哪個域名。這就是http頭部的host字段,比如訪問www.jonda.comhttp的頭部有這個字段host:www.jonda.comtcp連接建立以後,發送包括應用層數據在內的數據包給服務器,這時服務器可以根據host這個字段的值來識別不同的域名。另外需要注意的是,host字段是在http1.1加進去的,這個字段的加入,讓web服務器可以支持虛擬主機。http1.1還支持長連接,這就使得服務器推的技術成爲了可能,比如新浪微博上的消息提示。前幾天看到有人在新浪微博上說http1.2已經出來了,有空應該去看一看,讓自己再次感嘆一下自己的e文是多麼的爛啊。

 

小型的網站,要實現各種用戶同時訪問,用虛擬主機,共享帶寬就足夠了,慢慢地發展起來後,就得考慮用獨享帶寬,用文中提到的第一種方案。再發展下來,一臺服務器可能就不夠了,要增加web服務器和數據庫服務器,文件服務器等。面對大量的服務器,就得做服務器的負載均衡,而且要同步服務器之間的數據;面對頻繁讀的數據,需要做緩存;面對大量的計算,可以用預先計算的方式(其實現代的cpu就使用了預計算計算,就是沒有要求任務,它先做計算,萬一不需要,就忽略這些計算,需要的話,那就哈哈哈),也可以緩存計算的結果;面對大量的用戶增加,更新的數據,需要做異步寫。

 

一個強大的互聯網應用,要經受高併發,大存儲,高可用性,高可擴展等多方面的挑戰,當前,國內也有諸多這樣的應用,如新浪微博,淘寶網,qq空間等等。國外的facebooktwitter等就更不用說了。

 

業務的發展推動技術的進步,舊產品的更新,新產品的推出,但是,不論以後的業務是怎樣,需求是怎樣,我們創建的互聯網應用都得使用tcp/ip協議(起碼大部分網絡是如此,起碼可以預期內,不會有別的協議代替它),操作系統,還有數據結構。無奈,讀書時對這些沒有很在意,所以有空的時候,必須得看一看啊。

 

如果變得nb點,就不要讓自己只成爲某一方面的熟練工,要多看幾本書,要思考,還要動手,但是實踐起來也不是很容易啊,上班期間,時間幾乎是被工作的事情所佔用,自己抽出時間來看書,必須得週末,但是一週的疲勞工作已經累得不堪入目。最近微博上爆出“過勞死”,真是可怕啊。所以需要折中一下,節假日的時候該出去玩一玩,有空偶爾也翻翻書。我對自己是沒什麼奢求了,平平淡淡,健健康康就是福哦,一個簡單要求就是:公司不要逼我加班。

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