【Nginx】如何建立新串連

來源:互聯網
上載者:User

標籤:io   cti   使用者   對象   如何   指標   nginx   記憶體   

處理新串連事件的回呼函數是ngx_event_accept,原型如下:

void ngx_event_accept(ngx_event_t *ev)

具體流程如下:

1)首先調用accept方法試圖建立新串連,如果沒有準備好的新串連事件,ngx_event_accept方法會直接返回

2)設定負載平衡閥值ngx_accept_disabled,這個閥值是進程允許的總串連數的1/8減去空閑串連數

3)調用ngx_get_connection方法由串連池中擷取一個ngx_connection_t連線物件

4)為ngx_connection_t中的pool指標建立記憶體池,在這個串連釋放到空閑串連池時,釋放pool記憶體池

5)設定通訊端的屬性,如設為非阻塞通訊端

6)將這個新串連對應的讀事件添加到epoll等事件驅動模組中,這樣,在這個串連上如果接收到使用者請求epoll_wait,就會收集到這個事件

7)調用監聽對象ngx_listening_t中的handler回調方法

最後,如果監聽事件的available標誌位為1,再次迴圈到第一步,否則ngx_event_accept方法結束。事件的available標誌位對應著multi_accept配置項。當available為1時,告訴nginx一次性盡量多地建立新串連。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.