Nginx 入門教程通俗易懂崭倘,10 分鐘搞定翼岁!

最近在搭建一個網(wǎng)站,就不可避免地要用到 Nginx司光,索性就出一期 Nginx 的入門教程琅坡,希望也可以幫助到大家~??

作為開發(fā)者,相信大家都知道 Nginx 的重要性残家。Nginx 是一個高性能的 HTTP 和反向代理 Web 服務器榆俺,由俄羅斯的伊戈爾·賽索耶夫開發(fā),第一個版本發(fā)布于 2004 年 10 月 4 日坞淮。

Nginx 的特點是:

  • 內(nèi)存占用少
  • 并發(fā)能力強(可支持大約 50000 個并發(fā)連接)
  • 配置超簡潔
  • bug 非常少
  • 安裝超簡單
  • 服務特別穩(wěn)(幾個月也不需要重啟)

基于這些特點茴晋,越來越多的網(wǎng)站開始使用 Nginx。于是回窘,掌握 Nginx 就變成了開發(fā)者的一項必不可少的技能诺擅。

一、Nginx 的作用

反向代理是 Nginx 作為 Web 服務器最常用的功能之一啡直。什么是反向代理呢烁涌?很多初學者在第一次遇到這個名詞的時候總免不了出現(xiàn)很多問號。

那要想搞明白什么是反向代理酒觅,就必須得搞明白什么是正向代理撮执。

舉個例子,小二的瀏覽器是無法直接訪問谷哥的舷丹,但香港的代理服務器是可以訪問谷哥的抒钱,于是小二訪問了香港的代理服務器,也就間接地訪問了谷哥颜凯。那這臺代理服務器也就是正向代理继效。

總結(jié)一句就是,正向代理是代理客戶端的装获,讓你能正常訪問目的服務器。

與之相反厉颤,反向代理是代理服務器的穴豫,讓大量的請求均衡地訪問到某一臺服務器上。

舉個例子逼友,10 萬個小二同時在訪問 itwanger.com精肃, 如果只有一臺服務器的話,很容易就癱瘓了帜乞,于是高并發(fā)的情況下會有很多臺服務器(假如 10 臺吧)來接這個活司抱,那怎么讓 10 萬個小二訪問到這 10 臺服務器呢?

這就需要一個反向代理服務器了黎烈,反向代理服務器讓 1 萬個小二訪問服務器 A习柠,1 萬個小二訪問服務器 B匀谣,1 個小二訪問服務器 C,這樣的話资溃,每臺服務器的壓力就相應減小了武翎,是不是很 nice?

那問題來了溶锭。每臺服務器的能力可能不同宝恶,比如說服務器 A 的內(nèi)存比較大一點,有 100 個 G趴捅;服務器 B 的內(nèi)存小一點垫毙,有 10 個 G;服務器 C 的內(nèi)存更小一點拱绑,只有 1 個 G综芥。怎么才能讓沒臺服務器承擔起它能力范圍內(nèi)的訪問呢?

Nginx 內(nèi)置了輪詢和加權(quán)輪詢來達到負載均衡的目的欺栗。服務器 A 牛逼就把它的權(quán)重加大一點毫痕,讓 5 萬個小二訪問它;服務器 B 弱一點迟几,權(quán)重就再小一點消请,讓 2 萬個小二訪問它;服務器 C 更弱类腮,權(quán)重就最小臊泰,讓 1 萬個小二訪問它。

除此之外蚜枢,Nginx 還有一個很牛逼的功能是動靜分離缸逃。

在我們的軟件開發(fā)中,有些請求是需要后臺處理的厂抽;有些請求是不需要后臺處理的需频,比如說 css、js 這些文件請求筷凤,這些不需要經(jīng)過后臺處理的文件就叫靜態(tài)文件昭殉。

我們可以根據(jù)一些規(guī)則,把動態(tài)資源和靜態(tài)資源分開藐守,然后通過 Nginx 把請求分開挪丢,靜態(tài)資源的請求就不需要經(jīng)過 Web 服務器處理了,從而提高整體上的資源的響應速度卢厂。

二乾蓬、Nginx 的安裝

針對不同的操作系統(tǒng),Nginx 的安裝各不相同慎恒。Windows 可以直接到官網(wǎng)下載 zip 綠色安裝包任内,解壓后就可以了撵渡。

http://nginx.org/en/download.html

之前帶大家白票過阿里云的服務器,有 Linux 服務器的話族奢,直接通過寶塔面板這個神器就可以安裝了姥闭。

不過,如果在安裝寶塔面板必備工具包的時候越走,如果選擇了 phpmyadmin(MySQL 的管理工具)棚品,會覆蓋掉 80 端口,就導致沒辦法直接通過默認配置的方式訪問 Nginx 啟動頁面了廊敌。

我這里以 macOS 環(huán)境為例铜跑,來演示一下。

第一步骡澈,通過 brew info nginx 命令查看 Nginx 是否安裝锅纺。

第二步,通過 brew install nginx 命令安裝 Nginx肋殴。

從以上信息可以得出:

  • 根目錄是 /usr/local/var/www
  • 配置文件是 /usr/local/etc/nginx/nginx.conf
  • 默認端口是 8080

第三步囤锉,通過 nginx 命令啟動 Nginx。

第四步护锤,在瀏覽器地址欄通過 localhost:8080 訪問官地,可以看到以下歡迎頁面。

三烙懦、Nginx 常用命令

通常來說驱入,Nginx 一旦啟動后,我們是很少讓它退出的氯析,使用最多的就是 reload 命令亏较。當我們修改了配置文件,是需要執(zhí)行一次 reload 命令讓 Nginx 生效的掩缓。

nginx  啟動
nginx -s stop  停止
nginx -s quit  安全退出
nginx -s reload  重新加載配置文件
ps aux|grep nginx  查看nginx進程

要知道雪情,Nginx 的 reload 對用戶是無感的,這一點我覺得很牛逼~

四你辣、Nginx 的配置

我們先來看一下 Nginx 的配置結(jié)構(gòu)圖:

main        # 全局配置
├── events  # 配置網(wǎng)絡連接
├── http    # 配置代理旺罢、緩存、日志等
│   ├── upstream # 配置負載均衡
│   ├── server   # 配置虛擬主機绢记,可以有多個 server
│   ├── server
│   │   ├── location  # 用于匹配 URI(URL 是 URI 的一種),可以有多個 location
│   │   ├── location
│   │   └── ...
│   └── ...
└── ...

再把 Nginx 的默認配置拉出來看一下正卧,我把注釋加了進去蠢熄,這樣大家很容易就明白這行配置是用來干嘛的了。

worker_processes  1; # Nginx 進程數(shù)炉旷,一般設置為和 CPU 核數(shù)一樣

events {
    worker_connections  1024; # 每個進程允許最大并發(fā)數(shù)
}

http {
    include       mime.types; # 文件擴展名與類型映射表
    default_type  application/octet-stream;

    sendfile        on; # 開啟高效傳輸模式
    keepalive_timeout  65; # 保持連接的時間签孔,也叫超時時間叉讥,單位秒

    server {
        listen       8080; # 配置監(jiān)聽的端口
        server_name  localhost; # 配置的域名

        location / {
            root   html; # 網(wǎng)站根目錄
            index  index.html index.htm; # 默認首頁文件
        }

        error_page   500 502 503 504  /50x.html; # 默認50x對應的訪問頁面
        location = /50x.html {
            root   html;
        }
    }

    include servers/*; # 加載子配置項
}

好,現(xiàn)在我們登錄寶塔面板饥追,嘗試把默認的 server 配置復制到 Linux 服務器中的 Nginx 配置里图仓。

簡單解釋一下。

由于我的服務器上 80 端口是默認打開的但绕,所以我將監(jiān)聽端口配置成了 80救崔,如果你配置成其他端口的話,記得寶塔面板和云服務的安全組里把端口打開捏顺。

root 我指定了 /home/www 目錄六孵,首頁文件為 index.html。這個文件是我自定義的幅骄,來看一下內(nèi)容劫窒。

<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>沉默王二</title>
  <body>
    <img src="niubi.jpeg" />
  </body>
</html>

很言簡意賅,總之就是二哥拆座,牛逼~

好主巍,保存配置文件,并且 reload Nginx挪凑,我們在本地的瀏覽器中輸入服務器的 IP 地址就可以看到效果了孕索。

五、Nginx 的學習資料

關于 Nginx 的負載均衡岖赋,還有動靜分離檬果,等到二哥的網(wǎng)站跑起來后,可以專門搞個視頻給大家演示下唐断,比較直觀一點选脊。Nginx 的入門非常簡單,但有一說一脸甘,如果想要在工作中用好 Nginx恳啥,還是需要花費一番功夫的。

我這里再給大家推薦一些不錯的學習資料吧丹诀。

1)狂神說的視頻入門教程钝的,我個人覺得,狂神的入門教程還是非常舒適的铆遭,語速和內(nèi)容都剛剛好硝桩。

https://www.bilibili.com/video/BV1F5411J7vK

2)黑馬程序員Nginx教程,總共 159 講枚荣,基本上算是非常全面的 Nginx 的視頻教程了碗脊。

https://www.bilibili.com/video/BV1ov41187bq

3)極客時間上的 Nginx100 講,講的比較深一點橄妆,涉及到不少原理層面的東西衙伶。錢包比較鼓的話祈坠,可以去付費下。不過矢劲,聽說在某個地方也可以白票赦拘。

4)Nginx 從入門到實踐,萬字詳解芬沉,圖文版的躺同,可以到掘金上看看這篇文章,內(nèi)容基本上面面俱到了(可以看一下下面的目錄)花嘶,配合前面的視頻課笋籽,拿下 Nginx 基本上是穩(wěn)了。

https://juejin.cn/post/6844904144235413512

這些資料如果能全部過一遍的話椭员,我要喊你 Nginx 小王子了车海,估計公司遇到 Nginx 問題的話,你肯定是解決問題的那一個隘击。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末侍芝,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子埋同,更是在濱河造成了極大的恐慌州叠,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件凶赁,死亡現(xiàn)場離奇詭異咧栗,居然都是意外死亡,警方通過查閱死者的電腦和手機虱肄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門致板,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人咏窿,你說我怎么就攤上這事斟或。” “怎么了集嵌?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵萝挤,是天一觀的道長。 經(jīng)常有香客問我根欧,道長怜珍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任凤粗,我火速辦了婚禮酥泛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己揭璃,他們只是感情好,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布亭罪。 她就那樣靜靜地躺著瘦馍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪应役。 梳的紋絲不亂的頭發(fā)上情组,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音箩祥,去河邊找鬼院崇。 笑死,一個胖子當著我的面吹牛袍祖,可吹牛的內(nèi)容都是我干的底瓣。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼蕉陋,長吁一口氣:“原來是場噩夢啊……” “哼捐凭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起凳鬓,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤茁肠,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后缩举,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垦梆,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年仅孩,在試婚紗的時候發(fā)現(xiàn)自己被綠了托猩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡杠氢,死狀恐怖站刑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情鼻百,我是刑警寧澤绞旅,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站温艇,受9級特大地震影響因悲,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜勺爱,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一晃琳、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦卫旱、人聲如沸人灼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽投放。三九已至,卻和暖如春适贸,著一層夾襖步出監(jiān)牢的瞬間灸芳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工拜姿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留烙样,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓蕊肥,卻偏偏與公主長得像谒获,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子晴埂,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容