nginx使用什么模式來處理http請(qǐng)求?
Nginx 是一個(gè)高性能的 Web 服務(wù)器,能夠同時(shí)處理大量的并發(fā)請(qǐng)求。它結(jié)合多進(jìn)程機(jī)制和異步機(jī)制 ,異步機(jī)制使用的是異步非阻塞方式 。
Nginx 的多線程機(jī)制和異步非阻塞機(jī)制 。1、多進(jìn)程機(jī)制
服務(wù)器每當(dāng)收到一個(gè)客戶端時(shí),就有 服務(wù)器主進(jìn)程 ( master process )生成一個(gè) 子進(jìn)程( worker process )出來和客戶端建立連接進(jìn)行交互,直到連接斷開,該子進(jìn)程就結(jié)束了。
使用進(jìn)程的好處是各個(gè)進(jìn)程之間相互獨(dú)立,不需要加鎖,減少了使用鎖對(duì)性能造成的影響,同時(shí)降低了編程的復(fù)雜度和開發(fā)成本。
2、異步非阻塞機(jī)制每個(gè)工作進(jìn)程 使用 異步非阻塞方式 ,可以處理多個(gè)客戶端請(qǐng)求 。
當(dāng)某個(gè) 工作進(jìn)程 接收到客戶端的請(qǐng)求以后,調(diào)用 IO 進(jìn)行處理,如果不能立即得到結(jié)果,就去 處理其他請(qǐng)求 (即為 非阻塞 );而 客戶端 在此期間也 無需等待響應(yīng) ,可以去處理其他事情(即為 異步 )。