Nginx 配置筆記

Nginx 與 Apache 的比較

Apache 穩(wěn)定稚叹、開(kāi)源动雹、跨平臺(tái)槽卫,但它太重。在 Apache 服務(wù)器上胰蝠,如果有數(shù)萬(wàn)并發(fā) HTTP 請(qǐng)求同時(shí)訪問(wèn)歼培,就會(huì)導(dǎo)致服務(wù)器消耗大量?jī)?nèi)存震蒋,操作系統(tǒng)對(duì)成百上千的 Apache 進(jìn)程做進(jìn)程間切換也會(huì)消耗大量 CPU 資源,并導(dǎo)致 HTTP 請(qǐng)求的平均響應(yīng)速度降低丐怯,這些都決定了 Apache 不可能成為高性能 Web 服務(wù)器喷好,這也促使了 Lighttpd 和 Nginx 的出現(xiàn)。

Nginx 是輕量級(jí)读跷、高性能的 Web 服務(wù)器梗搅,使用基于事件驅(qū)動(dòng)的架構(gòu)能夠并發(fā)處理百萬(wàn)級(jí)別的 TCP 連接,高度模塊化的設(shè)計(jì)使得 Nginx 功能的第三方模塊開(kāi)發(fā)很方便效览。

Nginx 特點(diǎn):

  1. 更快
  2. 高擴(kuò)展性
  3. 高可靠性
  4. 低內(nèi)存消耗
  5. 單機(jī)支持 10W+ 的并發(fā)連接
  6. 熱部署

Nginx 使用

命令行操作

nginx -s reload # 使運(yùn)行中的 Nginx 重加載配置并生效
nginx -s stop # 停止服務(wù)
nginx -s quit # 處理完當(dāng)前所有請(qǐng)求再停止服務(wù)
nginx -t # 檢查配置信息是否有錯(cuò)誤
nginx -c new_nginx.conf # 使用自定義配置文件

stopquit 是有區(qū)別的:stop 會(huì)立即退出進(jìn)程无切,quit 會(huì)先關(guān)閉監(jiān)聽(tīng)端口,停止接受新連接丐枉,然后把當(dāng)前正在處理的連接全部處理完哆键,再退出進(jìn)程。

配置

塊配置項(xiàng)

塊配置項(xiàng)由一個(gè)塊配置項(xiàng)名和一對(duì)大括號(hào)組成:

events {

}
http {
    server {
        location /images {
            
        }
    }
}

events 瘦锹、http籍嘹、serverlocation 都是塊配置項(xiàng)名弯院,后面用大括號(hào)把一系列配置項(xiàng)包含進(jìn)來(lái)辱士。
location 后面的 /images 是配置項(xiàng)的參數(shù)

配置項(xiàng)的構(gòu)成

配置項(xiàng)名 配置項(xiàng)值1 配置項(xiàng)值2;

配置項(xiàng)名輸入結(jié)束后,將以空格作為分隔符
配置項(xiàng)值之間也是空格分隔

注釋

# 為行注釋

#pid logs/nginx.pid 

Nginx 用途

Nginx 高并發(fā)高負(fù)載的能力听绳,因此一般作為前端服務(wù)器直接向客戶(hù)端提供靜態(tài)文件服務(wù)颂碘。

但,也有一些復(fù)雜的業(yè)務(wù)不適合放在 Nginx 上椅挣,這時(shí)會(huì)用 Apache 等服務(wù)器處理头岔,這時(shí),Nginx 就作為代理服務(wù)器鼠证。

靜態(tài) web 服務(wù)器

URI 匹配

location[=|~|~*|^~|@]/uri/{...}

location 會(huì)嘗試根據(jù)用戶(hù)請(qǐng)求中的 URI 來(lái)匹配上面的 /uri 表達(dá)式峡竣,如果可以匹配,就選擇 location{} 塊中的配置來(lái)處理用戶(hù)請(qǐng)求量九。

符號(hào) 含義
= 把 URI 作為字符串澎胡,以便于參數(shù)中 uri 做完全匹配
~ 匹配 URI 時(shí)大小寫(xiě)敏感
~* 匹配 URI 時(shí)忽略字母大小寫(xiě)
^~ 匹配 URI 時(shí)只需要其前半部分與 URI 參數(shù)匹配
@ 僅用于 Nginx 服務(wù)內(nèi)部請(qǐng)求之間的重定向

uri 可以用正則:

location ~* \.(gif|jpg|jpeg)$ {
    # 匹配以 .gif .jpg .jpeg 結(jié)尾的請(qǐng)求
}

如果有請(qǐng)求可以匹配多個(gè) location ,只會(huì)被第一個(gè) location 處理娩鹉。

如果要表達(dá)「如果不匹配……則……」攻谁,要這樣表示:

location / {
    # / 符號(hào)可以匹配所有請(qǐng)求
}

文件路徑

  • root 設(shè)置資源路徑: root path
# 如果有請(qǐng)求是 /abc/index/test.html 則 web 服務(wù)器會(huì)返回 /data/html/abc/index/test.html
location /abc {
    root /data/html
}

# 請(qǐng)求 .js 文件都會(huì)返回 /data/js 下的文件
location \.js$ {
    root /data/js
}
  • alias 設(shè)置資源路徑: alias path
# 訪問(wèn) /abc 會(huì)映射到 /data/abc 文件夾
location /abc {
    alias /data/abc
}

# 等同于
location /abc {
    root /data
}
  • 首頁(yè): index file
# 收到請(qǐng)求后,先嘗試訪問(wèn) path/index.html 文件弯予,如果可以訪問(wèn)戚宦,直接返回文件內(nèi)容結(jié)束請(qǐng)求;
# 否則锈嫩,再?lài)L試返回 path/index.php
location / {
    root path;
    index /index.html /index.php
}
  • 根據(jù) HTTP 返回碼重定向
error_page 404 /404.html
error_page 502 503 504 /50x.html
error_page 403 http://example.com/forbidden.html

還可以通過(guò) = 更改返回的錯(cuò)誤碼:

error_page 404=200 /empty.gif

反向代理服務(wù)器

proxy_pass

proxy_pass 配置項(xiàng)將當(dāng)前請(qǐng)求反向代理到 URL 參數(shù)指定的服務(wù)器上受楼,URL 可以是主機(jī)名或 IP 地址垦搬。

# 訪問(wèn) /abc 會(huì)轉(zhuǎn)發(fā)到 http://127.0.0.1:8080/index.html
location /abc {
    proxy_pass http://127.0.0.1:8080/index.html;
}
反向代理與正向代理

反向代理和正向代理的區(qū)別就是代理服務(wù)器對(duì)客戶(hù)端可見(jiàn)還是對(duì)服務(wù)端可見(jiàn)

總結(jié)

這是我讀《深入理解Nginx(第2版)》前兩章的所總結(jié)的筆記。讓我知道了 nginx 的配置艳汽,后面沒(méi)有再看了(關(guān)于寫(xiě)Nginx擴(kuò)展的)猴贰,因?yàn)楝F(xiàn)在還不需要,可能以后也不需要 -_-!河狐。

說(shuō)來(lái)慚愧米绕,這是我去年7月買(mǎi)的書(shū),現(xiàn)在才看馋艺。真是越來(lái)越懶了栅干。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市捐祠,隨后出現(xiàn)的幾起案子碱鳞,更是在濱河造成了極大的恐慌,老刑警劉巖踱蛀,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件窿给,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡率拒,警方通過(guò)查閱死者的電腦和手機(jī)崩泡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)俏橘,“玉大人,你說(shuō)我怎么就攤上這事圈浇×绕” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵磷蜀,是天一觀的道長(zhǎng)召耘。 經(jīng)常有香客問(wèn)我,道長(zhǎng)褐隆,這世上最難降的妖魔是什么污它? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮庶弃,結(jié)果婚禮上衫贬,老公的妹妹穿的比我還像新娘。我一直安慰自己歇攻,他們只是感情好固惯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著缴守,像睡著了一般葬毫。 火紅的嫁衣襯著肌膚如雪镇辉。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,554評(píng)論 1 305
  • 那天贴捡,我揣著相機(jī)與錄音忽肛,去河邊找鬼。 笑死烂斋,一個(gè)胖子當(dāng)著我的面吹牛屹逛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播源祈,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼煎源,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了香缺?” 一聲冷哼從身側(cè)響起手销,我...
    開(kāi)封第一講書(shū)人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎图张,沒(méi)想到半個(gè)月后锋拖,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡祸轮,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年兽埃,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片适袜。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡柄错,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出苦酱,到底是詐尸還是另有隱情售貌,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布疫萤,位于F島的核電站颂跨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扯饶。R本人自食惡果不足惜恒削,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望尾序。 院中可真熱鬧钓丰,春花似錦、人聲如沸每币。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)脯爪。三九已至则北,卻和暖如春矿微,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背尚揣。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工涌矢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人快骗。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓娜庇,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親方篮。 傳聞我的和親對(duì)象是個(gè)殘疾皇子名秀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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