您好,登錄后才能下訂單哦!
這篇文章主要講解了“Nginx在架構中發揮的作用有哪些”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Nginx在架構中發揮的作用有哪些”吧!
一、Nginx 簡介
Nginx 是俄羅斯人編寫的十分輕量級的 HTTP 服務器,Nginx,它的發音為“engine X”,是一個高性能的 HTTP 和反向代理服務器,同時也是一個 IMAP/POP3/SMTP 代理服務器。
Nginx 因為它的穩定性、豐富的模塊庫、靈活的配置和低系統資源的消耗而聞名.業界一致認為它是 Apache2.2+mod_proxy_balancer 的輕量級代替者,不僅是因為響應靜態頁面的速度非常快,而且它的模塊數量達到 Apache 的近 2/3。對 proxy 和 rewrite 模塊的支持很徹底,還支持 mod_fcgi、ssl、vhosts ,適合用來做 mongrel clusters 的前端 HTTP 響應。
目前 Nginx 在國內很多大型企業都有應用,且普及率呈逐年上升趨勢。選擇 Nginx 的理由也很簡單:
第一,它可以支持 5W 高并發連接;
第二,內存消耗少;
第三,成本低。
Nginx 在架構中發揮的作用:
網關
---面向客戶的總入口。
虛擬主機
---一臺機器為不同的域名/ip/端口提供服務
路由
---使用反向代理,整合后續服務為一個完整業務
靜態服務器
---mvvm 模式中,用來發布前端 html/css/js/img
負載集群
---使用 upstream,負載多個 tomcat
二、Nginx特點
與其他web服務器相比,Nginx特點:
1、速度快
nginx使用預讀、連接池、內存池等技術,使得單次HTTP請求速度更快。
2、擴展性好
Nginx的結構是“核心+模塊”的結構,Nginx本身就是一個Epool或Kqueue的事件處理和分發架構,后面會講到模塊知識。
3、高可靠性
Nginx的核心由一個任務很輕的管理進程(master進程)和若干工作進程(worker進程)組成。具體的HTTP請求在工作進程內負載均衡,如果某個工作進程異常終止了,管理進程會迅速重啟一個新的工作進程接替該進程。
4、低內存占用
一般情況下,10000個非活躍HTTP保活連接僅占用2.5MB內存。ngx_lua每擴展10000個連接也僅占2.xMB內存。
5、高并發能力
部署在萬級以上的場合下。
Nginx全異步、非阻塞I/O的思想貫徹在核心、模塊以及ngx_lua 模塊中,無論是自己實現的模塊,還是通過lua實現的腳本代碼,都是非阻塞的高速運行。
6、熱部署
由于Nginx的管理進程和工作進程是分開設計的,所以能夠實現熱部署功能。也就是系統不間斷的情況下升級可執行程序,更新配置文件,更新日志。
7、開源
三、Nginx 架構設計
高度模塊化的設計是 Nginx 的架構基礎。Nginx 服務器被分解為多個模塊,每個模塊就是
一個功能模塊,只負責自身的功能,模塊之間嚴格遵循“高內聚,低耦合”的原則。
Nginx 模塊圖
核心模塊
核心模塊是 Nginx 服務器正常運行必不可少的模塊,提供錯誤日志記錄、配置文件解析、
事件驅動機制、進程管理等核心功能。
標準 HTTP 模塊
標準 HTTP 模塊提供 HTTP 協議解析相關的功能,如:端口配置、網頁編碼設置、HTTP
響應頭設置等。
可選 HTTP 模塊
可選 HTTP 模塊主要用于擴展標準的 HTTP 功能,讓 Nginx 能處理一些特殊的服務,如:
Flash 多媒體傳輸、解析 GeoIP 請求、SSL 支持等。
郵件服務模塊
郵件服務模塊主要用于支持 Nginx 的郵件服務,包括對 POP3 協議、IMAP 協議和
SMTP 協議的支持。
第三方模塊
第三方模塊是為了擴展 Nginx 服務器應用,完成開發者自定義功能,如:Json 支持、Lua
支持等。
感謝各位的閱讀,以上就是“Nginx在架構中發揮的作用有哪些”的內容了,經過本文的學習后,相信大家對Nginx在架構中發揮的作用有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。