nginx作用及其高效能之道

2022-09-18 07:09:23 字數 2170 閱讀 4936

閘道器:面向客戶的總入口。

虛擬主機:一台機器為不同的網域名稱

/ip/

埠提供服務

路由:使用反向**,整合後續服務為乙個完整業務

靜態伺服器:mvvm模式中,用來發布前端

負載集群:使用

upstream

,負載多個

tomcat

高度模組化的設計是 nginx 的架構基礎。nginx 伺服器被分解為多個模組,每個模組就是乙個功能模組,只負責自身的功能,模組之間嚴格遵循「高內聚,低耦合」的原則

核心模組是 nginx 伺服器正常執行必不可少的模組,提供錯誤日誌記錄、配置檔案解析、事件驅動機制、程序管理等核心功能。

可選 http 模組主要用於擴充套件標準的 http 功能,讓 nginx 能處理一些特殊的服務,如:flash 多**傳輸、解析 geoip 請求、ssl 支援等。

郵件服務模組主要用於支援 nginx 的郵件服務,包括對 pop3 協議、imap 協議和 smtp 協議的支援。

第三方模組是為了擴充套件 nginx 伺服器應用,完成開發者自定義功能,如:json 支援、lua 支援等。

3.1、伺服器每當收到乙個客戶端時。就有伺服器主程序(master process)生成乙個子程序(worker  process)出來和客戶端建立連線進行互動,直到連線斷開,該子程序結束。

3.2、使用程序的好處是各個程序之間相互獨立,不需要加鎖,減少了使用鎖對效能造成影響,同時降低程式設計的複雜度,降低開發成本。

其次,採用獨立的程序,可以讓程序互相之間不會影響,如果乙個程序發生異常退出時,其它程序正常工作,master 程序則很快啟動新的 worker 程序,確保服務不中斷,將風險降到最低。

缺點是作業系統生成乙個子程序需要進行記憶體複製等操作,在資源和時間上會產生一定的開銷;當有大量請求時,會導致系統效能下降

select(輪詢)和poll(多程序處理請求)的處理模式如上圖:

--在某一時刻,程序收集所有的連線,其實這100萬連線中大部分是沒有事件發生的。因此,如果每次收集事件時,都把這100萬連線的套接字傳給作業系統(這首先就是使用者態記憶體到核心記憶體的大量複製),而由作業系統核心尋找這些鏈結上沒有處理的事件,將會是巨大的浪費。

而epoll改進了收集連線的動作,提高效率。

epoll的優點:

² 支援乙個程序開啟大數目的socket描述符(fd)

² io效率不隨fd數目增加而線性下降

² 使用mmap加速核心與使用者空間的訊息傳遞

5.1、**:意思是乙個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向**傳送乙個請求並指定目標(原始伺服器),然後**向原始伺服器轉交請求並將獲得的內容返回給客戶端。

5.2、反向**,服務端推出的乙個**招牌

六.負載均衡的短連線和長鏈結的非同步非阻塞管理

七.upstream容錯機制

高效能Nginx最佳實踐

三,nginx配置location 配置塊 server 詳情 location會嘗試根據使用者請求中的uri來匹配location的uri表示式,如果可以匹配,就選擇location塊中的配置來處理使用者請求。示例 四,nginx常規配置 一 定義環境變數 語法 evn var var value...

Nginx 取代Apache的高效能Web伺服器

nginx 可以在大多數 unix like os 上編譯執行,並有 windows 移植版。目前 nginx 的1.0.9穩定版已經於2011年11月1日發布,開發版本已完成的為1.1.8,如果新建站點,建議使用最新穩定版作為生產版本,已有站點公升級急迫性不高。nginx 的源 使用 2 clau...

高效能Http伺服器nginx

nginx介紹 nginx是一款採用linux 2.6核心epoll新機制開發的web伺服器軟體,能極大地提高web訪問特別是小檔案訪問的i o效能,是c10k問題的乙個解決方案。在高併發連線的情況下,nginx是apache伺服器不錯的替代品。nginx同時也可以作為7層負載均衡伺服器來使用。高併...