網頁服務器的工作流程
作者:佚名 時間:2014-04-29 分享到:
Woker
當進程收到用戶發來的請求時,首先會將其生成一種線程,并且通過每一個線程來處理用戶發來的請求。當第一個用戶請求到達主機時,金城會通知內核將請求的文件或數據提交給進程;當第二個用戶請求到達主機時,相對來說文件已存在,都存放在同一內核空間,所以速度非常快。
缺點會導致資源爭用的情況,因此一個進程不能生成太多的線程。但可以啟動多個進程并且逐個生成線程。
perfork
當進程收到用戶發送的請求時,會由主進程生成一個子進程,用子進程來處理用戶的請求。
perfork是基于select模型,最大的并發連接數為1024個。當其連接數達到了1024,則不再處理請求。
event
當進程收到用戶請求時,進程對內核發起回調函數,并且記錄是由哪個進程發來的請求,一旦請求被處理后,會直接反饋給用戶。如果沒有被處理的進程則一直處于等待狀態,知道請求被處理。這種掃描是全局的,哪個響應完成則通知哪個。
如沒特殊注明,文章均為上海聯楷網絡原創,轉載請注明來自:http://www.ktcbnqb.cn/build/20151216/n5048.html