簡單了解下Nginx

Nginx基礎(chǔ)

1.常見web服務(wù)器比較

web服務(wù)器.jpg

2.為什么要使用nginx:

連接數(shù)(針對于多用戶的應(yīng)用場景):Nginx生成工作進程大审,每一個工作進程可以處理上千個連接。工作進程通過實現(xiàn)一個快速的循環(huán)算法不斷的獲取并處理事件蔬崩。從連接中分離出實際的請求處理工作羽峰,讓每一個工作進程只有當(dāng)新的事件發(fā)生時才與一個連接產(chǎn)生聯(lián)系卿城。因為服務(wù)器是單線程的并且并不為處理一個新的連接生成一個單獨的進程,所以內(nèi)存和CPU的消耗趨于保持相對一致唆姐,甚至是在大并發(fā)的情況下也如此。

而對于apache廓八,因為它進程模式雖然簡單而靈活奉芦,但并不適合大規(guī)模尤其是當(dāng)要處理像PHP這種需要占用大量內(nèi)存應(yīng)用程序代碼時,核心的區(qū)別在于apache是同步多進程模型剧蹂,一個連接對應(yīng)一個進程声功;nginx是異步的,多個連接(萬級別)可以對應(yīng)一個進程宠叼,nginx的優(yōu)勢是處理靜態(tài)請求先巴,cpu內(nèi)存使用率低,所以現(xiàn)在一般前端用nginx作為反向代理抗住壓力冒冬。

3.為什么要使用nginx+tomcat的模式

應(yīng)用分工:雖然Tomcat也可以認(rèn)為是HTTP服務(wù)器伸蚯,但通常它仍然會和Nginx配合在一起使用:

動靜態(tài)資源分離——運用Nginx的反向代理功能分發(fā)請求,所有動態(tài)資源的請求交給Tomcat简烤,而靜態(tài)資源的請求(例如圖片剂邮、視頻、CSS乐埠、JavaScript文件等)則直接由Nginx返回到瀏覽器抗斤,這樣能大大減輕Tomcat的壓力囚企。

負(fù)載均衡,當(dāng)業(yè)務(wù)壓力增大時瑞眼,可能一個Tomcat的實例不足以處理龙宏,那么這時可以啟動多個Tomcat實例進行水平擴展,而Nginx的負(fù)載均衡功能可以把請求通過算法分發(fā)到各個不同的實例進行處理伤疙。(nginx主要處理靜態(tài)資源银酗,而tomat主要處理動態(tài)資源,事實上nginx與tomcat都可以認(rèn)為是HTTP服務(wù)器徒像,但更多的可以認(rèn)為tomcat它是應(yīng)用服務(wù)器黍特,Tomcat是支持運行Servlet/JSP應(yīng)用程序的容器,這保證了它處理動態(tài)資源的能力

4.Nginx的功能特性

1)Nginx提供基本HTTP服務(wù)锯蛀,可以作為HTTP代理服務(wù)器和反向代理服務(wù)器灭衷,支持通過緩存加速訪問,可以完成簡單的負(fù)載均衡和容錯旁涤,支持包過濾功能翔曲,支持SSL等。

2)Nginx提供高級HTTP服務(wù)劈愚,可以進行自定義配置瞳遍,支持虛擬主機,支持URL重定向菌羽,支持網(wǎng)絡(luò)監(jiān)控掠械,支持流媒體傳輸?shù)?/p>

3)Nginx作為郵件代理服務(wù)器是最早開發(fā)這個產(chǎn)品的目的之一,支持IMAP/POP3 代理服務(wù)功能支持內(nèi)部SMTP代理服務(wù)

5.什么是代理(什么是正向注祖、反向代理):

1)正向代理:隱藏了真實的請求客戶端猾蒂,服務(wù)端不知道真實的客戶端是誰,客戶端請求的服務(wù)都被代理服務(wù)器代替來請求氓轰。(VPN的使用)

2)反向代理:隱藏了真實的服務(wù)端婚夫,當(dāng)我們請求 百度的時候,就像撥打10086一樣署鸡,背后可能有成千上萬臺服務(wù)器為我們服務(wù)案糙,但具體是哪一臺,你不知道靴庆,也不需要知道时捌,你只需要知道反向代理服務(wù)器是誰就好了,(http://www.baidu.com/) 就是我們的反向代理服務(wù)器炉抒,反向代理服務(wù)器會幫我們把請求轉(zhuǎn)發(fā)到真實的服務(wù)器那里去奢讨。Nginx就是性能非常好的反向代理服務(wù)器,用來做負(fù)載均衡焰薄。

兩者的區(qū)別在于代理的對象不一樣:正向代理代理的對象是客戶端拿诸,反向代理代理的對象是服務(wù)端(還有一種說法是internet與局域網(wǎng)請求方向的不同)

正向代理
反向代理

5.為什么要做反向代理

1)流量分發(fā):將用戶蜂擁而入時扒袖,可用代理來將接受用戶請求并分發(fā)到空閑的服務(wù)器上。

2)安全:防止將IP端口號直接暴露在公網(wǎng)亩码,而代理服務(wù)器數(shù)量有限季率,修補安全漏洞更方便快捷

3)利于遷移:用戶和負(fù)載均衡設(shè)備直接通信,也意味著用戶做服務(wù)器域名解析時描沟,解析得到的IP其實是負(fù)載均衡的IP飒泻,而不是服務(wù)器的IP,這樣有一個好處是吏廉,當(dāng)新加入/移走服務(wù)器時泞遗,僅僅需要修改負(fù)載均衡的服務(wù)器列表,而不會影響現(xiàn)有的服務(wù)席覆。

Nginx安裝部署的一些學(xué)習(xí)思路

1史辙、安裝部署:
1)安裝nginx的模塊需要依賴第三方庫:通常有pcre(支持rewrite模塊)、zlib庫(支持gzip模塊)和openssl庫(支持ssl模塊)等

2)linux版本的nginx以及第三方模塊的下載:選擇需要的nginx版本佩伤,需要注意一般使用穩(wěn)定版髓霞,因為需要定制路徑以及添加第三方的模塊,因此是用源碼安裝方式畦戒。

3)預(yù)編譯:需要配置諸如—prefix=等路徑,因此先了解各個路徑代表的意義尤為重要结序。

4)編譯與安裝:利用make進行編譯障斋,make install進行安裝。

5)進行nginx的配置問及看是否有語法錯誤徐鹤、進行運行以及嘗試啟屠罚控制。

6)加入新的第三方模塊:需要注意的是通過返敬。configure進行重新預(yù)編譯遂庄,接著使用make進行編譯而不再使用make install安裝,否則會進行覆蓋劲赠,最后將把編譯目錄下objs/nginx文件直接覆蓋老的nginx文件即可涛目。

2、nginx的配置:
1)重點需要注意首先應(yīng)該了解nginx.conf的文件結(jié)構(gòu)凛澎,了解全局塊霹肝、events塊、http塊塑煎、server塊沫换、location塊的一般應(yīng)用場景。

2)了解常用的一些配置語句的功能最铁,如worker process數(shù)

3)了解nginx虛擬主機配置的結(jié)構(gòu)讯赏,以及每條語句實現(xiàn)的功能是什么垮兑。

nginx的模塊化、進程處理機制以及事件驅(qū)動模型

1漱挎、模塊化結(jié)構(gòu)(高拓展性):
以功能塊為單位進行程序設(shè)計系枪,,一個模塊負(fù)責(zé)一個功能识樱。各個模塊實行“高內(nèi)聚嗤无、低耦合”的方式,可以到達分布式開發(fā)的目的怜庸。

Nginx的模塊分為核心模塊当犯、標(biāo)準(zhǔn)HTTP模塊、HTTP模塊割疾、郵件服務(wù)模塊等五類嚎卫。

核心模塊:提供核心功能,一類是主體功能宏榕,包括進程管理拓诸、權(quán)限控制、錯誤日志等麻昼。另一類是用于響應(yīng)請求事件必須的功能奠支,包括事件驅(qū)動機制、正則表達式解析等抚芦。

標(biāo)準(zhǔn)HTTP模塊:快速編譯時默認(rèn)編譯倍谜。(基于IP地址的訪問控制)

可選HTTP模塊:快速編譯時默認(rèn)不編譯。(對HTTPS/SSL的支持)

郵件服務(wù)模塊:提供郵件服務(wù)叉抡。

2尔崔、進程處理機制(高處理能力):
1)一般的處理機制:多進程方式(Apache使用預(yù)生成進程)、多線程方式

2)網(wǎng)絡(luò)通信機制:異步機制褥民、同步機制季春、阻塞、非阻塞

四個概念:同步阻塞消返、同步非阻塞载弄、異步阻塞、異步非阻塞

Nginx能夠處理大量并發(fā)請求的與原因在于結(jié)合了多進程方式以及異步非阻塞的處理方式侦副,每個進程可以處理多個請求

3侦锯、nginx事件驅(qū)動模型(IO調(diào)用的高效率、低能耗)
輪詢or主動通知

Select模型(創(chuàng)建read秦驯、write尺碰、exception事件)、poll模型、epoll模型(把描述符的列表交給內(nèi)核負(fù)責(zé)亲桥,通過相關(guān)調(diào)用實現(xiàn)創(chuàng)建)

最后介紹一個Nginx中的小知識點

先看toot的用法
location /request_path/image/ {
    root /local_path/image/;
}
這樣配置的結(jié)果就是當(dāng)客戶端請求 /request_path/image/cat.png 的時候洛心, 
Nginx把請求映射為/local_path/image/request_path/image/cat.png           **root是匹配后路徑追加到前面**

再看alias的用法
location /request_path/image/ {
    alias /local_path/image/;
}
這時候,當(dāng)客戶端請求 /request_path/image/cat.png 的時候题篷, 
Nginx把請求映射為/local_path/image/cat.png                **alias是匹配后直接在alias路徑下查找词身,去除匹配內(nèi)容**
對比root就可以知道怎么用了吧~~ :)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市番枚,隨后出現(xiàn)的幾起案子法严,更是在濱河造成了極大的恐慌,老刑警劉巖葫笼,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件深啤,死亡現(xiàn)場離奇詭異,居然都是意外死亡路星,警方通過查閱死者的電腦和手機溯街,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洋丐,“玉大人呈昔,你說我怎么就攤上這事∮丫” “怎么了堤尾?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長迁客。 經(jīng)常有香客問我哀峻,道長,這世上最難降的妖魔是什么哲泊? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮催蝗,結(jié)果婚禮上切威,老公的妹妹穿的比我還像新娘。我一直安慰自己丙号,他們只是感情好先朦,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著犬缨,像睡著了一般喳魏。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上怀薛,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天刺彩,我揣著相機與錄音,去河邊找鬼。 笑死创倔,一個胖子當(dāng)著我的面吹牛嗡害,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畦攘,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼霸妹,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了知押?” 一聲冷哼從身側(cè)響起叹螟,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎台盯,沒想到半個月后罢绽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡爷恳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年有缆,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片温亲。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡棚壁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出栈虚,到底是詐尸還是另有隱情袖外,我是刑警寧澤,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布魂务,位于F島的核電站曼验,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏粘姜。R本人自食惡果不足惜鬓照,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孤紧。 院中可真熱鬧豺裆,春花似錦、人聲如沸号显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽押蚤。三九已至蔑歌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間揽碘,已是汗流浹背次屠。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工园匹, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帅矗。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓偎肃,卻偏偏與公主長得像,于是被迫代替她去往敵國和親浑此。 傳聞我的和親對象是個殘疾皇子累颂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360