進入NGINX的世界:從只會瀏覽網頁,邁向會搭建網站

Hello 大家好哦

先簡單介紹一下我自己吧 , 大米是來自北京的運維架構師一名, 從2004年參加工作至今已經第14年了

歲數確實很大啦 但是 咱們當運維的人永遠都保持着年輕的心是最重要的了

有的朋友可能要問大米了, 做運維可以幹上這麼多個年頭嗎 , 前景如何啊 待遇怎麼樣?

[大米心中偷着樂]

這還用問嗎?如果前途和待遇不行話 怎麼可能一直做這麼多年呢 ^_^?

接下來 又有人給大米提出問題了, 請問 運維這一行當 和 開發比起來如何呢?

[閉上眼回顧一下]

其實這個問題仁者見仁智者見智 , 大米不會去爭辯,只能說我本人對Linux運維有着比較重的情節,因爲薪資不比開發低,且年齡基本不受限制 , 更重要的是,大米比較喜歡涉獵廣泛的技術面(這一點在運維中體現的尤其明顯)

言歸正傳 接下來 談一談我們的這個專題的宗旨

爲什麼大米希望能給大家帶來一篇NGINX的教程呢? 接下來咱們就如下的幾個原因分別的跟大家聊一聊

[通過NGINX瞭解網站工作流程]

意思就是說,我們並不僅僅只是學習NGINX本身的技術,而是通過NGINX的學習,讓你對整體網站的運作模式 乃至企業集羣架構 也有一定程度的瞭解

提到"網站"這個詞, 大米就不得不回憶一下曾經的經歷了

還記得大米在2004年剛剛參加工作的時候,做的就是嵌入式的WEB C語言 CGI開發(說的直白點 就是在嵌入式主板上 建立一個網站),第一天剛剛報道的時候,主管立刻就把我叫到跟前,跟我說:你目前的任務 就是先搞明白WEB動態網站是怎麼回事,然後再搞清楚如何在嵌入式上實現WEB站點. 當時記得真是一臉懵逼啊 ,都不知道說的是啥 ("什麼 網站可以用C語言來開發?")後來被主管老張一步一步的指點 才終於明白了 網站是怎麼回事,域名DNS是怎麼回事 , 動態網站和靜態網站又是怎麼回事,動靜分離是怎麼回事,表單提交和CGI又是怎麼回事 .. , 就這樣一點一點就入門開始寫網站代碼了

回想起剛剛參加工作時候的情景,真是歷歷在目。 而最重要的是,經過了十幾年後,當初最開始學到的各種關於網站的技術和思路,直到今天 依然在日常工作中發揮着作用,爲什麼呢?我們在下面一個小節解釋

[如今互聯網 幾乎處處離不開WEB服務器 (NGINX) ]

上個單元 咱們提到了嵌入式上的網站, 關於嵌入式是什麼 我們不需要去搞懂它,我們在這裏只需要知道 在那個年代 在一個嵌入式小主板上(就是個微型電腦)想要做出一個網站 那真的是難度太大了。

因爲在當時的情況下(老式嵌入式環境的限制) 沒有辦法使用像NGINX 和 PHP(PHP我們以後再講) 這樣方便的軟件 來建設網站
所以 可想而知 一個動態網站 需要用C語言去編寫(靜態和動態兩部分)難度可想而知

現如今搭建一個讓別人能訪問的網站, 最重要的基礎前提是什麼? 那就是 首先必須得有一個WEB服務器 纔可以

那什麼是WEB服務器呢?

我們現在 學着脫離一個普通傻瓜用戶 而以一個技術人員的思路 來思考一下 平時當我們隨時隨地打開一個網頁瀏覽的時候 它的背後是怎麼實現的吧(其實這也是 作爲一個合格的運維技術人員 必須要掌握的學習方法 和思考問題的方式)

首先第一個最容易想到的是, 之所以 一個遠端的網頁能被你打開瀏覽, 那至少得先經過網絡的傳輸纔可以 對不?

那接下來呢?經過網絡傳輸 那傳輸的是什麼東西?

想象一下 平時咱們每天上下班捧着個手機 , 或者坐在家裏電腦前 看着網頁上的東東 都有些什麼呢?

大量的文字? 各式各樣的圖片 和 視頻 各種按鈕 輸入框 各種導航條

平時我們在瀏覽器網頁的時候(無論是手機 還是電腦)在網絡中傳輸來傳輸去的 其實歸納起來 無非就是上面說的這些

這些在網站技術領域中 被賦予了一個專門的詞彙 叫做 靜態資源(所謂靜態資源 人們瀏覽器網頁 最直觀看到 感受到的)

雖然這些都被稱作靜態資源 但是他們的類型並不一樣, 而在網絡中傳輸的時候 又必須得藉助一種統一的規範作爲載體
(就好比是 很多種不同的貨物 想要運送度過一條河到對岸 必須都要統一放入一搜貨船中)

這個載體的名字 大家一定很熟悉 那就是HTTP協議 沒錯 之所以你能看得到網頁中各種內容 都是它從中給你充當翻譯

所謂的服務器 服務器, 那必須得能給從遠處訪問過來的用戶 提供服務纔可以 不是麼?

這個服務 在咱們當下說的網站領域中,指的就是HTTP協議的處理, 一個能處理HTTP協議的軟件 我們就稱作 一個WEB服務器
這就是我們即將要學習的NGINX

然而實事求是的說,技術領域中的 WEB服務器 其實並不止NGINX一個 , 其他的還有很多哦 例如 APACHE ,Tomcat , Lighthttpd 等等

但是你要知道的是, 技術浩瀚如海 我們的精力和時間有限, 學同一類型技術的時候 我們就挑選 最火的最有前途的 技術學

[談談服務器是什麼概念]

通過之前的章節 我們知道了 NGINX其實就是一個有能力 解析和翻譯HTTP協議的軟件,讓我們可以通過瀏覽器(WEB)網上衝浪 正是由於它能對外(指的是咱們上網用戶) 提供這種"服務", 所以 我們又稱作它爲 WEB服務器

在這一個章節中 我們需要給大家再把一個概念搞清楚 那就是 "服務器"

說到"服務器" 其實它包含了兩層的含義 一個是指 像NGINX這樣 對外提供服務的 持續運作的軟件
(這種對外提供服務的軟件 和我們平時自己用的軟件有很大的不同, 通常自己用的軟件 比如一個遊戲軟件 一個殺毒軟件 一個計算器 這種都是個人軟件,顧名思義就是給個人 給自己提供服務 自己拿着用 , 而像NGINX這種服務類的軟件, 它可不是隻給一個人自己使用的哦, 而是爲了給成千上萬的人提供某些功能 所以 這一點我們要搞清楚)

第二個含義 指的就是 硬件的服務器

NGINX的功能很強大 很穩定 持續不斷的給訪問網站的用戶服務 提供和解析資源, 但是NGINX畢竟是個軟件啊 它總不可能自己憑空着運行吧。

所以它必須依賴一個 穩定的運行的實體載體, 這就是硬件服務器。 硬件服務器 可以理解爲 就是功能更強大的計算機, 本質並沒有什麼不同,只不過 它和一般家用PC電腦或者筆記本 比較起來,是專門爲了長久穩定高速運行 而制定的
(服務器和PC電腦的關係, 就跟上面咱們提過的 個人軟件和服務類軟件 的關係很貼近, 就是服務個人 和服務一羣人的區別)

另外 光有NGINX 和 服務器 還不足以開始假設我們的網站,其中還缺少一個非常重要的環節,那麼就是操作系統啊!

NGINX這種服務類軟件 + 實體服務器 + 穩定的操作系統(LINUX,運維工程師必備的技能,下個篇幅我們再學習) 這三樣就組成了我們搭建一個網站(最簡單的靜態網站 , 什麼是動態網站 我後面再講)的最基本的條件了

[爲什麼NGINX這麼重要? 因爲網站的概念 其實是可以無限延伸擴展的 ]

在這個章節中,我們討論一個非常重要的概念,那就是網站概念的延伸 這裏不是很好理解 一定要自習的閱讀!

咱們之前說了好多的篇幅, 感覺一直都是在談論網站 網站 網站. 難道就只有在 搭建一個"網站"的時候 NGINX纔派上用場嘛?

首先 大米給大家提出一個問題,請大家好好想想, 我們平時 所謂的上網 連網 就僅僅是瀏覽網頁 沒別的了?

請問你 手機沒有用過導航 ? 有沒有叫過外賣,有沒有玩過手遊? 有沒有用過各種社交類軟件撩妹過?

我很負責任的告訴你 當你使用這些功能的軟件的時候, NGINX一樣無處不在 都在默默的爲你提供者服務

那說到這裏 大家可能會有一個疑問了

咦? 平時使用手機導航,或者玩手遊的時候, 我可沒有打開什麼瀏覽器哦 ,這跟“網站”應該絲毫無關吧, 爲什麼也都會使用NGINX?

如果要解釋這個問題,我們就回到上上個章節中一起來回顧一下, NGINX的定義是什麼

NGINX是一個專門搭建"網站"的服務器? NO NO NO!~~ 大米可不是這麼說的哦

大米告訴大家的是, NGINX是一個高性能處理"HTTP協議" 的服務軟件

這裏的關鍵就在"HTTP協議上", 這裏其實是一個包含不化等號的關係 希望大家可以理解好

網站 必須依賴HTTP協議 才能瀏覽
但是依賴HTTP協議瀏覽的 可不見得是網站哦

其實現在 互聯網在我們的日常生活中 凡是用於給用戶展示的 或者說 最貼近咱們用戶的部分 使用的大多數都是HTTP協議
(技術架構中,我們稱作 WEB前端 幾乎清一色使用HTTP協議 作爲入口,而相應的還有後端技術(就不再是HTTP協議了),這些目前不懂沒關係 我們以後的章節還會再講解)

既然到處都是HTTP協議, 而且互聯網的流量又是那麼巨大,所以像NGINX這種 以高性能穩定運行解析HTTP協議的軟件 一統天下 就是大勢所趨了
(就目前來說 APACHE作爲 WEB服務器的老大哥 依然佔據着最多的市場份額, 但是 由於NGINX的上升速度實在太快,取而代之成爲第一 也就是幾年的事)

[知識成主幹 你學到的不僅僅是NGINX ]

凡是看過大米講運維相關課程的同學都清楚, 我從來講究的都是 獨木不成林 知識之間必須形成鏈路 最終成主幹這樣的思路

上線一個專欄《生產框架下的Nginx》的目的 不光是讓你掌握一個NGINX相關知識, 而是通過這一門課程 可以讓你進入到運維架構思路之中 學會如何讓知識形成體系

這種知識成體系的能力 纔是我們最終所追求 就好比 你學英語天天就被單詞 而不去大量讀文章 瞭解國外文化 和通俗說法 就算你背下來10萬個單詞 也沒有用處

接下來 就跟隨大米老師 一起通過NGINX 進入知識的海洋吧 ^_^

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