Tengine---nginx平台初探
nginx的配置系統(tǒng)
1. nginx的配置系統(tǒng)由一個主配置文件和其他一些輔助的配置文件構(gòu)成。這些配置文件均是純文本文件,全部位于nginx安裝目錄下的conf目錄下
2. 配置文件中以#開始的行,或者是前面有若干空格或者TAB,然后再跟#的行,都被認為是注釋
3. 由于除主配置文件nginx.conf以外的文件都是在某些情況下才使用的,而只有主配置文件是在任何情況下都被使用的
4. 在nginx.conf中,包含若干配置項。每個配置項由配置指令和指令參數(shù)2個部分構(gòu)成。指令參數(shù)也就是配置指令對應(yīng)的配置值。
5. 當前nginx支持的幾個指令上下文:
main: nginx在運行時與具體業(yè)務(wù)功能(比如http服務(wù)或者email服務(wù)代理)無關(guān)的一些參數(shù),比如工作進程數(shù),運行的身份等。
http: 與提供http服務(wù)相關(guān)的一些配置參數(shù)。例如:是否使用keepalive啊,是否使用gzip進行壓縮等。
server: http服務(wù)上支持若干虛擬主機。每個虛擬主機一個對應(yīng)的server配置項,配置項里面包含該虛擬主機相關(guān)的配置。在提供mail服務(wù)的代理時,也可以建立若干server.每個server通過監(jiān)聽的地址來區(qū)分。
location: http服務(wù)中,某些特定的URL對應(yīng)的一系列配置項。
mail: 實現(xiàn)email相關(guān)的SMTP/IMAP/POP3代理時,共享的一些配置項(因為可能實現(xiàn)多個代理,工作在多個監(jiān)聽地址上)
nginx的模塊化體系結(jié)構(gòu)
1. nginx的內(nèi)部結(jié)構(gòu)是由核心部分和一系列的功能模塊所組成。這樣劃分是為了使得每個模塊的功能相對簡單,便于開發(fā),同時也便于對系統(tǒng)進行功能擴展
2. nginx提供了web服務(wù)器的基礎(chǔ)功能,同時提供了web服務(wù)反向代理,email服務(wù)反向代理功能。nginx core實現(xiàn)了底層的通訊協(xié)議,為其他模塊和nginx進程構(gòu)建了基本的運行時環(huán)境,并且構(gòu)建了其他各模塊的協(xié)作基礎(chǔ)。除此之外,或者說大部分與協(xié)議相關(guān)的,或者應(yīng)用相關(guān)的功能都是在這些模塊中所實現(xiàn)的
3. 模塊的分類?
nginx的模塊根據(jù)其功能基本上可以分為以下幾種類型:
event module: 搭建了獨立于操作系統(tǒng)的事件處理機制的框架,及提供了各具體事件的處理。包括ngx_events_module, ngx_event_core_module和ngx_epoll_module等。nginx具體使用何種事件處理模塊,這依賴于具體的操作系統(tǒng)和編譯選項。
phase handler: 此類型的模塊也被直接稱為handler模塊。主要負責(zé)處理客戶端請求并產(chǎn)生待響應(yīng)內(nèi)容,比如ngx_http_static_module模塊,負責(zé)客戶端的靜態(tài)頁面請求處理并將對應(yīng)的磁盤文件準備為響應(yīng)內(nèi)容輸出。
output filter: 也稱為filter模塊,主要是負責(zé)對輸出的內(nèi)容進行處理,可以對輸出進行修改。例如,可以實現(xiàn)對輸出的所有html頁面增加預(yù)定義的footbar一類的工作,或者對輸出的圖片的URL進行替換之類的工作。
upstream: upstream模塊實現(xiàn)反向代理的功能,將真正的請求轉(zhuǎn)發(fā)到后端服務(wù)器上,并從后端服務(wù)器上讀取響應(yīng),發(fā)回客戶端。upstream模塊是一種特殊的handler,只不過響應(yīng)內(nèi)容不是真正由自己產(chǎn)生的,而是從后端服務(wù)器上讀取的。
load-balancer: 負載均衡模塊,實現(xiàn)特定的算法,在眾多的后端服務(wù)器中,選擇一個服務(wù)器出來作為某個請求的轉(zhuǎn)發(fā)服務(wù)器。
4. nginx使用一個多進程模型來對外提供服務(wù),其中一個master進程,多個worker進程。master進程負責(zé)管理nginx本身和其他worker進程。
5. 所有實際上的業(yè)務(wù)處理邏輯都在worker進程。worker進程中有一個函數(shù),執(zhí)行無限循環(huán),不斷處理收到的來自客戶端的請求,并進行處理,直到整個nginx服務(wù)被停止
6.
總結(jié)
以上是生活随笔為你收集整理的Tengine---nginx平台初探的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: boost库 数组智能指针scoped_
- 下一篇: STL:transform