nginx服務(wù)器(engine-X),是一種web服務(wù)器。它是一種開(kāi)源的高性能http和反向代理服務(wù)器。 它也可提供IMAP/POP3/SMTP代理服務(wù)等功能。 ? ? ? ? ? ? ? ? ( 推薦學(xué)習(xí):nginx使用?)
**Nginx是以多進(jìn)程的方式來(lái)工作的。**也支持多線(xiàn)程的方式,只是主流的方式還是多進(jìn)程的方式,也是Nginx的默認(rèn)方式。
Nginx啟動(dòng)后,它在unix系統(tǒng)中會(huì)以daemon的方式在后臺(tái)運(yùn)行,后臺(tái)進(jìn)程包含一個(gè)master進(jìn)程和多個(gè)worker進(jìn)程。
master進(jìn)程主要用來(lái)管理worker進(jìn)程,包含:接收來(lái)自外界的信號(hào),向各worker進(jìn)程發(fā)送信號(hào),監(jiān)控worker進(jìn)程的運(yùn)行狀態(tài),當(dāng)worker進(jìn)程退出后(異常情況下),會(huì)自動(dòng)重新啟動(dòng)新的worker進(jìn)程。
而基本的網(wǎng)絡(luò)事件,則是放在worker進(jìn)程中來(lái)處理了。多個(gè)worker進(jìn)程之間是對(duì)等的,他們同等競(jìng)爭(zhēng)來(lái)自客戶(hù)端的請(qǐng)求,各進(jìn)程互相之間是獨(dú)立的。
一個(gè)請(qǐng)求,只可能在一個(gè)worker進(jìn)程中處理,一個(gè)worker進(jìn)程,不可能處理其它進(jìn)程的請(qǐng)求。worker進(jìn)程的個(gè)數(shù)是可以設(shè)置的,一般我們會(huì)設(shè)置與機(jī)器cpu核數(shù)一致。
優(yōu)點(diǎn)
高并發(fā)連接
官方測(cè)試能支撐5萬(wàn)并發(fā)連接,在實(shí)際生產(chǎn)環(huán)境中跑到2~3萬(wàn)并發(fā)連接數(shù)。Nginx服務(wù)器專(zhuān)為性能優(yōu)化而開(kāi)發(fā)。它支持內(nèi)核Poll模型,能經(jīng)受高負(fù)載的考驗(yàn)。
內(nèi)存消耗少
Nginx服務(wù)器采取了分階段資源分配技術(shù),這使得它的CPU與內(nèi)存占用率非常低。
配置文件簡(jiǎn)單
成本低 : Nginx服務(wù)器是開(kāi)源軟件。
支持Rewrite重寫(xiě)規(guī)則
能根據(jù)域名、URL的不同,將 HTTP 請(qǐng)求分到不同的后端服務(wù)器群組。
內(nèi)置的健康檢查功能.
若 Nginx服務(wù)器 Proxy 后端的某臺(tái) Web 服務(wù)器宕機(jī),不會(huì)影響前端訪(fǎng)問(wèn)。
節(jié)省帶寬.
支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。
穩(wěn)定性高.
Nginx服務(wù)器的穩(wěn)定性很高。其它HTTP服務(wù)器在遇到訪(fǎng)問(wèn)峰值,或有人惡意發(fā)起慢速連接時(shí),很可能會(huì)導(dǎo)致服務(wù)器物理內(nèi)存耗盡,頻繁交換,失去響應(yīng)(只能重啟服務(wù)器)。
另外, Nginx服務(wù)器采用master-slave模型,能充分利用SMP的優(yōu)勢(shì),且能減少工作進(jìn)程在磁盤(pán)I/O的阻塞延遲。
Nginx服務(wù)器代碼質(zhì)量很高,很規(guī)范, 模塊擴(kuò)展也很容易。Nginx服務(wù)器采用了一些os提供的最新特性如對(duì)sendfile (linux2.2+),accept-Filter(FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,從而大大提高了性能。