一無所有建網站過程
一個輸入域名就可通路的網站是如何建立起來的呢?這樣:
首先,需要購買伺服器。現在有很多雲伺服器提供商,如阿裡巴巴的阿裡雲,騰訊的騰訊雲等。去他們官網買個伺服器,建議去買阿裡雲伺服器,相對來說便宜。建議包年。
買到伺服器後,就會得到這台伺服器(計算機)在公網中的位置(IP位址)。有了IP位址,就能通過浏覽器通路這台機器。其實并不能。不能的原因在于浏覽器通路其它計算機的過程:
在浏覽器輸入域名之後,浏覽器将比較這個域名是否與緩存中的某個相同,如果相同,則直接調出緩存中儲存的HTML,CSS,JS等交給浏覽器界面解析子產品解析;如果不同,則查找本機Host檔案中的域名跟IP位址的映射關系。
浏覽器中輸入IP位址和輸入域名通路其它計算機的過程相似。都是先看緩存中是否有對應記錄。不過我猜想如果 緩存中找不到對應記錄,它不會再去查找本地Host檔案。因為Host檔案中規定某個域名與IP位址的映射關系的作用是硬性地将某個域名指向某個IP位址,即使實際上這個域名與實際IP位址并不真的互相對映。而知道了IP位址之後就相當于知道了這個計算機的實際位置(公網中的位置或私網中的位置)。或者說,域名就是這個計算機的位置名稱,IP位址是“世界坐标”。位置的名稱可以變,或者說知道名稱并不真的确定位置在哪,而知道了路如何走就真的确定位置在哪了。從這個角度說,IP位址就相當于路徑。域名就相當于要去的地點名。是以,既然知道了路徑就完全沒必要在本地“欺瞞”了。是以,我認為知道了IP位址就不會再查本地Host記錄了。
有了IP位址就可以遠端通路這個計算機,這不意味着可以通過在浏覽器輸入IP位址的方式通路。浏覽器輸IP位址通路的方式是通過Http協定通路。而剛買的伺服器預設沒有開放用于http協定通路的端口(80),即使開了這個端口,域名提供商(如阿裡)提供的伺服器安全政策也不允許通過http協定通過這個計算機的80端口通路這台計算機。需要在控制台設定允許。而配置
Mysql
服務也是如此,預設不開放3306端口,需要雙設定(設定伺服器,設定安全政策)。完全開放(雙設定之後)了80端口後是可以通過浏覽器輸位址的方式通路到這台計算機的。但是開放後馬上這樣做,會發現浏覽器頁面什麼都沒有。這是肯定的了。因為雖然可以通過http協定連接配接到遠端計算機,也能通過其端口,但是進到那台計算機後卻沒有“人”“招呼”“通路者”。結果“通路者”就“待在那”無所事事“,直到連接配接中斷,”退出“(被攆出)計算機。是以,就需要設定一”導引者“。實際可充當這一角色的是
Apache
和
Nginx
。它們(手動安裝配置)運作在被訪計算機的記憶體中,時刻監聽着80端口。發現80端口的“動靜”後,就“引導”通路者到計算機指定位置。如何指定這一位置,就需要我們事先告訴“導引者”,這也就是配置
Apache
或
Nginx
的目的。而事實上,通過80端口的隻是http協定,也就是說80端口隻做一件事:網站通路。是以,隻需把我們想要被通路的網站路徑告訴
Apache
或
Nginx
,那麼http的連接配接就能取回我們網頁的資訊(HTML,CSS,JS等),最終被浏覽器解析,展現給通路的人。
現在就很清楚了。我們買完伺服器之後,隻需要進行
雙設定
,上傳網站,安裝配置
Apache
或
Nginx
,就算完成工作了。