NGNIX使用epoll通知來了解套接字上是否有數據要讀取。我們假設: 有兩個請求到服務器。 nginx的是notificated瞭解這個兩個請求,並且開始:單線程NGINX如何處理如此多的連接?
接收第一請求
解析IST頭
檢查boudary(車身尺寸)
發送向上遊服務器的第一請求
等
nginx是單線程的,只能同時執行一個操作。
但第二個請求會發生什麼?
nginx在解析第一個請求時是否收到第二個請求?
或者在第一次完成後開始處理第二個請求?
或其他我不明白的東西。
如果1.是正確的比我不明白如何在一個單一的線程內是可能的。
如果2.是正確的比nginx怎麼會這麼快?因爲nginx會按順序處理所有傳入的請求。在任何時候,只有一個請求處理是可能的。
請幫我理解。 謝謝
可能相關:unix套接字比使用TCP更慢。另一件事:nginx是單線程的,但創建的工作人員很少,默認情況下4,你的問題是關於一個特定的工人內部發生了什麼? –
請參閱我的答案以獲得解釋:http://stackoverflow.com/a/19324665/362536 – Brad