圖解Web服務器

很早以前,我就在想一個問題,為什么在瀏覽器中輸入 www.baidu.com 就能出來百度首頁,這個過程究竟是怎么一回事呢?本文概述的描述此過程。

目錄:
1. 初體驗
2. IP 地址
3. 端口 port
4. nginx 服務器
5. 域名

1. 初體驗

下載 nginx1.12.1 window 64位。下載完成解壓縮,無需安裝,可直接使用。目錄結構如下:

nginx目錄

打開 html 目錄,用以下內容替換 index.html 的內容:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>這是我的個人網站</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>千千闕歌</h1>
來日縱是千千闕歌 <br>
飄于遠方我路上 <br>
來日縱是千千晚星 <br>
亮過今晚月亮 <br>
都比不起這宵美麗 <br>
亦絕不可使我更欣賞 <br>
</body>
</html>

打開 conf 目錄修改 nginx.conf 文件。

......
server {
        # 修改端口為 3000,默認為 80
        listen       3000;        
        server_name  localhost;
........

雙擊 nginx.exe 運行程序。 打開瀏覽器輸入 127.0.0.1:3000 就可以看到剛剛創建的個人網站。

個人網站

當然,可別以為如此簡單就創建了一個網站。你迫不及待的霸占了坐在你旁邊同事的機器,在他的電腦瀏覽器里也輸入 127.0.0.1:3000,結果并沒有出現想象中的網頁。這是為什么呢?要解釋這個問題,得先介紹下 IP 和端口的相關常識。

2. IP 地址

以前看過一本黑客小說,里面寫到:“只要知道別人的 IP 地址,就可以入侵別人的電腦”。計算機如果沒有連接網絡,是不會有 IP 地址的,此時任黑客多牛逼,也不可能進入你的計算機。這也是電腦中病毒后第一時間斷網的原因。

  • 公網 IP
  • 內網 IP
  • 127.0.0.1localhost

電腦連網,實際上只做了兩件事情:接收別人發來的數據,給別人發送數據。這些數據都是由 0 和 1 組成的二進制的數據,如:1011010100001101......,你所看到的視頻,文字,網頁等等一切在做網絡中都會轉換為 0 和 1,當然,這部分后面介紹 http 頭信息時會詳細介紹。

既然要接收信息和寄出信息,那么就需要一個地址。每一臺連網的計算機都會有一個 IP 地址。計算機連接公司的網線上網,就使用公司的 IP 地址 IP1,計算機連接家里的網線,就使用家里的 IP 地址 IP2。

計算機 IP 地址

不管是公司的 IP 還是家里的 IP,最初都是在相關部門登記過的,直接由相關部門分配的一個地址。這樣的 IP 叫做公網 IP,可以直接在百度中查詢公網 IP 地址。

查詢公網 IP 地址

通常在家里,會安裝一個路由器,然后用你的計算機和移動設備去連接路由器,此時路由器的 IP 是公網 IP,而路由器會自動創建子 IP 分別給你的計算機或者手機使用,由路由器分配的子 IP 就叫做內網 IP。可以通過在 DOS 窗口 敲入 ipconfig 獲取,格式如:192.168.1.101,其中,前面 192.168.1 是固定格式,最后一位是隨動的。

查詢內網 IP 地址

通常本機 IP 是不固定的。如果你使用公司網絡上網會是一個 IP 地址,而回到家里使用家里的網絡又會是另一個 IP 地址。因此規定 127.0.0.1 或者 localhost 特指本機的 IP。

為什么要分公網 IP 和內網 IP 呢?其實在別人訪問你的計算機時,只會訪問公網 IP 或者是內網 IP 其中一個。如果是連接同一個路由器的其它計算機訪問你的計算機,只能通過內網 IP 訪問,此時通過公網 IP 是無法訪問的,因為你們屬于一個公網 IP 下。這一點在后面介紹 DNS 協議時會詳細介紹。

有了 IP 地址,就可以找到某一臺計算機。如最初在瀏覽器中輸入 127.0.0.1:3000 就找到了當前計算機。那么 3000 又是什么意思呢?下面介紹端口的含義。

3. 端口 port

如果現在一邊在線聽音樂,一邊和朋友聊 qq,那么這個過程是怎樣的呢?

在線聽音樂和聊 qq 都是需要連網的。這一點通過 IP 地址可以做到。以 qq 音樂為例:需要通過互聯網獲取音樂數據然后放到計算機的播放器中進行播放;而 qq 聊天需要連接網絡接收朋友的短消息然后放到消息框中顯示。如何保證這兩個步驟傳輸的數據不會弄錯呢?即音樂數據傳到了 qq 聊天里,qq 聊天數據傳輸到了音樂里?這就涉及到了端口。

如果給 qq 音樂分配一個端口 4000(舉例數字,實際并不是此端口,以下 5000 一樣也是舉例數字),給 qq 聊天分配一個端口 5000,并且規定在網絡中傳輸數據時必須使用 ip:port 的方式作為地址。通過 ip 地址找到指定計算機,通過 port 找到計算機中運行的某一個應用程序,此時就可以準確的將數據傳輸到指定應用程序而不至混淆。

端口

4. nginx 服務器

此時再回過頭來看一看 127.0.0.1:3000 就豁然開朗了。127.0.0.1 是本地計算機的 IP 地址,而 3000 是 nginx 應用程序占用的端口號,這一點在最開始介紹的 conf 目錄中的 nginx.conf 中有設置過。

此時,想要使用你同事的計算機訪問你的網站就很容易了。

  • 確定你的 ip 地址。如果你同事和你連接的都是同一個路由器的網絡,那么通過 DOS 窗口 中鍵入 ipconfig 查看內網 IP 地址。如果不是連接同一個路由器的網絡,那么通過百度搜索 ip 獲取你的外網 IP 地址。這里假定為內網 ip,地址為:192.168.1.101
  • 確定在你的計算機上啟動了 nginx 應用程序。應用程序只有被啟動,端口號才會生效。上面設置的端口號為 3000
  • 在你同事的計算機瀏覽器中輸入 192.168.1.101:3000。此時應該就可以看到你的網站了。

服務器nginx 是一款 Web 服務器應用程序,必須得運行著才能訪問網站。通常所說的 Web 服務器指的就是類似 nginx 這種應用程序,類似的 Web 服務器應用程序還有 tomcat

服務器與 Web 服務器:我將服務器總結為可以通過 ip:port 的方式找到,并且提供相應服務這樣一個應用程序。 如 Nginx 服務器就是通過 ip:port 找到,并且提供網頁服務,讓我們在瀏覽器中可以看到網站。如通常所說的 Linux 服務器,其實就是 Linux 系統上的一個遠程控制應用程序,這個應用程序啟動后默認端口是 22,通過 <ip>:22 就可以連接到遠程控制應用程序,而這個遠程控制應用程序所做的事情就是啟動 Linux 的 shell 終端。

服務器地址:服務器 nginx 是運行在計算機上的,通過 ip 可以確定計算機位置,通過 port 可以確定 nginx 位置,因此 ip:port 就被稱為服務器地址。此處示例的192.168.1.101:3000 就是本機上 nginx 的服務器地址;

5. 域名

當年一老兄閑著沒事注冊了 360 這個域名,后來 360 公司做大做強之后想要買回這個域名,可是花了一個億人民幣。

看到上面可能還有些疑惑,為什么百度的網址是 www.baidu.com 簡單易記,而咱的網站就是 192.168.1.101:3000 這么一串數字呢?

按 F12 打開控制臺,切換到 Network 選項卡,重新輸入百度地址,可以看到信息如下圖所示。事實上,訪問的 服務器地址115.239.210.27:443。而 baidu.com 是它的別名,方便記憶,也被叫做 域名

百度域名

域名注冊:域名需要在 域名注冊機構 上進行注冊,說是注冊,其實就是購買,而且還是按照年限購買的,并不是買一個域名就永久擁有它,這一點與中國房屋占有權 60 年期限有點像。

域名備案:注冊過域名要進行備案,也就是讓國家網絡部門知道這個域名被誰用了,這過程是實名制的,防止你注冊個域名結果弄個小黃網侵害青少年或干其它違法犯罪的事。建議在 阿里云騰訊云 這樣的廠商購買域名,后期域名備案也是一站式服務,只需填寫信息等待即可。這個過程大概需要 30 天左右。

域名解析:域名備案成功之后就是域名解析了,將域名與 ip 一一對應。這個過程自己操作不理解的話有點困難。當初第一個域名是在新網買的,以為買了域名在瀏覽器中輸入就有東東,殊不知域名就是個別名,不綁定 ip 卵用也沒,不過剛接觸這個,域名解析也不會搞就浪費了。第二個域名是在騰訊云上買的,解析也很方便,引導信息也很清楚。

域名解析

nginx 服務器配置:如果域名解析也完成后,只需將注冊的域名在服務器的配置文件:conf 目錄下的 nginx.conf 文件做相應修改即可。

......
server {
        # 修改端口為 3000,默認為 80
        listen       3000;        
        # 服務器域名配置,修改為 dkvirus.com,默認為 localhost
        server_name  dkvirus.com;
........

此時在瀏覽器中輸入 dkvirus.com:3000 就和輸入 127.0.0.1:3000 是一樣的啦。是不是感覺后面還有個 3000 尾巴很不爽。域名只是 ip 的別名,與端口無關。

http 協議規定,如果端口是 80,那么可以默認不寫。

還是對 conf 目錄下的 nginx.conf 文件做相應修改。

......
server {
        # 修改端口為 80,默認為 80
        listen       80;        
        # 服務器域名配置,修改為 dkvirus.com,默認為 localhost
        server_name  dkvirus.com;
........

重啟 nginx 服務器,此時在瀏覽器中只需要輸入 dkvirus.com 就可以打開網站了。其實應該寫成 dkvirus.com:80,只不過 80 端口默認可以不寫,于是就變成了 dkvirus.com

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,908評論 6 541
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,324評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,018評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,675評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,417評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,783評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,779評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,960評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,522評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,267評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,471評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,009評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,698評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,099評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,386評論 1 294
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,204評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,436評論 2 378

推薦閱讀更多精彩內容

  • 名詞延伸 通俗的說,域名就相當于一個家庭的門牌號碼,別人通過這個號碼可以很容易的找到你。如果把IP地址比作一間房子...
    楊大蝦閱讀 20,620評論 2 56
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,823評論 18 139
  • Nginx是一個輕量級的,高性能的Web服務器以及反向代理和郵箱 (IMAP/POP3)代理服務器。它運行在UNI...
    零一間閱讀 2,236評論 0 12
  • 第一章 Nginx簡介 Nginx是什么 沒有聽過Nginx?那么一定聽過它的“同行”Apache吧!Ngi...
    JokerW閱讀 32,740評論 24 1,002
  • 日子就這樣平淡無奇地過著,我似乎忘了自己是那么愛讀書,寫作。心情很平淡,有時小煩悶,有時感覺輕松,不知說什么好。偶...
    lily糖閱讀 174評論 0 0