羽量級HTTP伺服器Nginx:模組與工作原理

來源:互聯網
上載者:User
關鍵字 nginx 工作原理 HTTP伺服器

風信網(ithov.com)原創文章:Nginx由內核和模組組成,其中,內核的設計非常微小和簡潔,完成的工作也非常簡單,僅僅通過查找設定檔將用戶端請求映射到一個location block(location是Nginx配置中的一個指令,用於URL匹配),而在這個location中所配置的每個指令將會啟動不同的模組去完成相應的工作。

Nginx的模組從結構上分為核心模組、基礎模組和協力廠商模組,HTTP模組、EVENT模組和MAIL模組等屬於核心模組,HTTP Access模組、HTTP FastCGI模組、HTTP Proxy模組和HTTP Rewrite模組屬於基礎模組,而HTTP Upstream Request Hash模組、Notice模組和HTTP Access Key模組屬於協力廠商模組,使用者根據自己的需要開發的模組都屬於協力廠商模組。 正是有了這麼多模組的支撐,Nginx的功能才會如此強大。

&HTTP://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Nginx的模組從功能上分為如下三類。

口Handlers(處理器模組)。 此類別模組直接處理請求,並進行輸出內容和修改headers資訊等操作。 Handlers處理器模組一般只能有一個。
口Filters(篩檢程式模組)。 此類別模組主要對其他處理器模組輸出的肉容進行修改操作,最後由Nginx輸出。
口Proxies(代理類別模組)。 此類別模組是Nginx的HTTP Upstream之類的模組,這些模組主要與後端一些服務比如FastCGI等進行交互,實現服務代理和負載均衡等功能。

圖I-I展示了Nginx模組常規的HTTP請求和回應的過程。

圖1-1 Nginx模組的HTTP請求和回應過程

在工作方式上,Nginx分為單工作進程和多工作進程兩種模式。 在單工作進程模式下,除主進程外,還有一個工作進程,工作進程是單線程的;在多工作進程模式下,每個工作進程包含多個執行緒。 Nginx預設為單工作進程模式。

Nginx的模組直接被編譯進Nginx,因此屬於靜態編譯方式。 啟動Nginx後,Nginx的模組被自動載入,不像Apache,首先將模組編譯為一個SO檔,然後在設定檔中指定是否進行載入。 在解析設定檔時,Nginx的每個模組都有可能去處理某個請求,但是同一個處理請求只能由一個模組來完成。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.