Nginx源碼初探之upstream機制 -UPSTREAM機制介紹

upstream機制介紹
       Nginx訪問上游服務器主要是基於upstream機制。
upstream機制是事件驅動框架與HTTP框架的綜合,它既屬於HTTP框架的一部分,又可以處於基於TCP的應用層協議。爲了幫助Nginx實現反向代理功能,upstream機制處理提供基本的與上游交互的功能之外,還實現裏轉發上游應用層協議的響應包體到下游客戶端的功能。
        Nginx訪問上游服務器大致可以分爲6個階段:啓動UPSREAM機制,連接上游服務器,向上遊服務器發送請求,接收上游服務器的響應包頭,處理接收都的響應包體,結束請求。
1.啓動upstrean機制
        啓動方式很簡單,創建並設置好請求體找那個的upstream成名,然後調用ngx_http_upstream_init就可以了。ngx_http_upstream_init主要就是檢查下游讀時間的timer_set位,如果定時器中有讀事件,則將客戶端連接的讀事件從定時器移除。然後調用HTTP模塊實現create_request方法,最後調用ngx_http_upstream_connect方法連接下游服務器。
2.與上游服務器建立連接
       upstream機制與上游服務器是通過無阻塞的套接字來來建立TCP連接的。ngx_http_upstream_connect用來發起建立連接,如果這個方法沒有立刻返回成功,那麼需要在epoll中監控,當他出現可寫事件時,表明連接建立成功。
3.發送請求到上游服務器
       發送請求的方法需要被epoll調度許多次ngx_http_upstream_send_request才能發送完請求,
4.接收上游服務器的響應頭部
       當請求全部發送給上游服務器後,Nginx處於靜默狀態,ngx_http_upstream_process_header方法處理上游服務器的響應。
6.結束請求
       響應處理完後,需要結束請求,upstream機制提供了一個類似的方法ngx_http_upstream_finalize_request用於結束upstream請求。

    upstream機制屬於HTTP框架,請求組裝,發送往上游,解析上游響應的部分都在HTTP模塊。

發佈了27 篇原創文章 · 獲贊 1 · 訪問量 2225
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章