【Linux Nginx實戰】之初識Nginx(一)
nginx是一款高性能的HTTP和反向代理服務器軟件,第一個開源版本誕生於2004年,雖然誕生較晚但經過十多年的發展,已經成為非常流行的web服務器軟件,下圖是w3techs公布的全球網站服務器軟件統計報告
2.Nginx為什麽流行?
首先,nginx的特性迎合了市場的發展趨勢,近幾年來,隨著硬件成本的降低,個人電腦和移動設備得到了普及,高並發的流量成為網站必須應對的問題。而Nginx就是為性能而生,從發布以來一直側重於高性能,高並發,低CPU內存消耗;在功能方面:負載均衡,反向代理,訪問控制,熱部署,高擴展性等特性又十分適合現代的網絡架構。更可貴的是配置簡單文檔豐富,大大降低了學習的門檻。
3.Nginx和Apache 有什麽共同之處
-
- 同是HTTP服務器軟件,都采用模塊化結構設計
-
- 支持通用語言接口,如PHP,Python等
-
- 支持正向代理和反向代理
3.4. 支持虛擬主機及ssl加密傳輸
3.5. 支持緩存及壓縮傳輸
3.6. 支持URL重寫
3.7. 模塊多,擴展性強
3.8. 多平臺支持
- 支持正向代理和反向代理
4.Nginx的優勢
4.1 輕量級 安裝文件小 運行時CPU內存使用率低
4.2 性能強 支持多核,處理靜態文件效率高,內核采用的poll模型最大可以支持50K並發連接
4.3 支持熱部署 同時啟動速度快,可以在不間斷服務的情況下對軟件和配置進行升級
4.4 負載均衡 支持容錯和健康檢查
5.Nginx的劣勢
5.1 相比Apache 模塊要少一些,常用模塊都有了,而且支持LUA語言擴展功能
5.2 對動態請求支持不如apache
5.3 Windows 版本功能有限 ,受限於windows的特性,支持最好的還是*unix系統
Nginx的組成
Nginx的各種功能和操作都由模塊來實現。Nginx的模塊從結構上分為核心模塊、基礎模塊和第三方模塊。
核心模塊: HTTP模塊、EVENT模塊和MAIL模塊 基礎模塊: HTTP Access模塊、HTTP FastCGI模塊、HTTP Proxy模塊和HTTP Rewrite模塊 第三方模塊: HTTP Upstream Request Hash模塊、Notice模塊和HTTP Access Key模塊及用戶自己開發的模塊
這樣的設計使Nginx方便開發和擴展,使得Nginx功能如此強大。Nginx的模塊默認編譯進nginx中,如果需要增加或刪除模塊,需要重新編譯Nginx,這一點不如Apache的動態加載模塊方便。
Nginx 使用的架構
LNMP
web歷史上最流行最經典的環境是LAMP(Linux + Apache + Mysql + PHP),至今仍有大量網站采用此架構,Apache默認配置在未優化的情況下比較占用CPU和內存。借助於Nginx的輕量和高性能,LNMP架構只是將LAMP環境中的Apache換成Nginx,於是另一經典LNMP架構就誕生了。LNMP在服務器硬件配置相同時,相對於LAMP會使用更少的CPU和內存,是小型網站,低配服務器,和VPS的福音。
當然,Nginx還有其他的架構,但在後續的文章中,我只會使用到這個結構,所以其他的暫不列舉說明。
【Linux Nginx實戰】之初識Nginx(一)