Nginx實現高併發及原理

2022-06-20 15:21:08 字數 833 閱讀 5309

1.nginx高併發原理(多程序+epool實現高併發)

1.nginx 在啟動後,會有乙個 master 程序和多個相互獨立的 worker 程序

2.每個子程序只有乙個執行緒,採用的 io多路復用模型epoll,實現高併發

2.epoll能實現高併發原理

1.epoll() 中核心則維護乙個鍊錶,epoll_wait 方法可以獲取到鍊錶長度,不為0就知道檔案描述符準備好了

2.在核心實現中 epoll 是根據每個 sockfd 上面的與裝置驅動程式建立起來的**函式實現的

3.某個 sockfd 上的事件發生時,與它對應的**函式就會被呼叫,來把這個 sockfd 加入鍊錶,其他處於「空閒的」狀態的則不會

4.epoll上面鍊錶中獲取檔案描述,這裡使用記憶體對映(mmap)技術, 避免了複製大量檔案描述符帶來的開銷

記憶體對映(mmap):記憶體對映檔案,是由乙個檔案到一塊記憶體的對映,將不必再對檔案執行i/o操作

3、nginx和apache比較

(1)nginx相對於apache的優點

1.輕量級,同樣起web 服務,比apache 占用更少的記憶體及資源

2.抗併發,nginx 處理請求是非同步非阻塞的,而apache 則是阻塞型的,在高併發下nginx 能保持低資源低消耗高效能

3.高度模組化的設計,編寫模組相對簡單,社群活躍,各種高效能模組出品迅速啊

(1)apache相對於nginx的優點

1.apache 更為成熟,少 bug ,穩定性好

2.rewrite ,比nginx 的rewrite 強大

3.模組超多,基本想到的都可以找到

高併發原理

高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。提高系統併發能力的方式,方 上主要有兩種 垂直擴充套件 scale up 與水平擴充套件 scale out 處理高併發有三種手段 1 橫向擴充套件 增加...

Nginx搭建負載均衡實現高併發

有的時候我們部署的專案併發人數一旦增加,單體專案很容易掛掉,不是我們的伺服器配置不夠,因為每乙個 tomcat 的能力是有限的,導致了拖慢訪問速度,這個時候我們就可以使用負載均衡 負載均衡建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬 增加吞吐量 加強網路資料處...

nginx安裝lua模組實現高併發

wget c tar xzvf luajit 2.0.4.tar.gz cd luajit 2.0.4 make install prefix usr local luajit 注意環境變數 export luajit lib usr local luajit lib export luajit i...