nginx服務(wù)器(engine-X),是一種web服務(wù)器。它是一種開源的高性能http和反向代理服務(wù)器。 它也可提供IMAP/POP3/SMTP代理服務(wù)等功能。 ? ? ? ? ? ? ? ? ( 推薦學(xué)習(xí):nginx使用?)
**Nginx是以多進(jì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)程主要用來管理worker進(jìn)程,包含:接收來自外界的信號(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)程中來處理了。多個(gè)worker進(jìn)程之間是對(duì)等的,他們同等競爭來自客戶端的請(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ā)連接
官方測試能支撐5萬并發(fā)連接,在實(shí)際生產(chǎn)環(huán)境中跑到2~3萬并發(fā)連接數(shù)。Nginx服務(wù)器專為性能優(yōu)化而開發(fā)。它支持內(nèi)核Poll模型,能經(jīng)受高負(fù)載的考驗(yàn)。
內(nèi)存消耗少
Nginx服務(wù)器采取了分階段資源分配技術(shù),這使得它的CPU與內(nèi)存占用率非常低。
配置文件簡單
成本低 : Nginx服務(wù)器是開源軟件。
支持Rewrite重寫規(guī)則
能根據(jù)域名、URL的不同,將 HTTP 請(qǐng)求分到不同的后端服務(wù)器群組。
內(nèi)置的健康檢查功能.
若 Nginx服務(wù)器 Proxy 后端的某臺(tái) Web 服務(wù)器宕機(jī),不會(huì)影響前端訪問。
節(jié)省帶寬.
支持 GZIP 壓縮,可以添加瀏覽器本地緩存的 Header 頭。
穩(wěn)定性高.
Nginx服務(wù)器的穩(wěn)定性很高。其它HTTP服務(wù)器在遇到訪問峰值,或有人惡意發(fā)起慢速連接時(shí),很可能會(huì)導(dǎo)致服務(wù)器物理內(nèi)存耗盡,頻繁交換,失去響應(yīng)(只能重啟服務(wù)器)。
另外, Nginx服務(wù)器采用master-slave模型,能充分利用SMP的優(yōu)勢(shì),且能減少工作進(jì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+)的支持,從而大大提高了性能。