• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            Nginx0.7.61代碼分析(三)--事件處理

            Nginx里面的事件處理與其他服務(wù)器所做的事件處理模型其實(shí)大同小異---都是封裝了一個(gè)事件通知的結(jié)構(gòu)體,然后會(huì)對(duì)每個(gè)平臺(tái)上常用的事件觸發(fā)器做封裝(epoll/select/poll/...),根據(jù)編譯時(shí)配置來決定選擇哪個(gè)事件處理器,當(dāng)然,這個(gè)選擇也可以在配置文件中指定。

            封裝事件處理的結(jié)構(gòu)體在ngx_event_s中定義,其中的handler是處理事件的函數(shù)指針。

            對(duì)于監(jiān)聽socket而言,這個(gè)handler函數(shù)指針指向的是函數(shù)ngx_event_accept函數(shù)。顯然,這個(gè)函數(shù)是用于接收新連接。
            當(dāng)接收新的連接之后,對(duì)連接socket而言,這個(gè)函數(shù)指針指向ngx_http_init_request 函數(shù)。假如這個(gè)函數(shù)執(zhí)行成功,handler函數(shù)指針會(huì)改為指向ngx_http_process_request_line函數(shù)。其他的以此類推,我沒有繼續(xù)跟進(jìn)這些與http具體業(yè)務(wù)相關(guān)的處理函數(shù)。

            所以,可以看到,在處理一個(gè)連接請(qǐng)求的每個(gè)階段,都對(duì)應(yīng)的是不同的handler函數(shù),在每個(gè)handler函數(shù)中,會(huì)在執(zhí)行成功之后修改handler函數(shù)指針指向下一個(gè)階段的處理函數(shù)。

            與之前分析過的lighhtpd的狀態(tài)機(jī)相比,Nginx里面的handler函數(shù)之間,耦合關(guān)系更緊密一些,也就是說,在狀態(tài)處理的每個(gè)階段,都需要知道下一個(gè)階段是由哪個(gè)函數(shù)進(jìn)行處理。我個(gè)人更喜歡lighttpd的狀態(tài)機(jī),因?yàn)檫@個(gè)狀態(tài)機(jī)使得每個(gè)階段的狀態(tài)耦合的不那么緊密,每次狀態(tài)處理完畢,該狀態(tài)的處理函數(shù)只需要保存本次處理的結(jié)果,然后進(jìn)入狀態(tài)機(jī)處理函數(shù)中,由它來選擇處理的走向。




            posted on 2009-12-09 23:47 那誰 閱讀(5396) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 服務(wù)器設(shè)計(jì)Nginx

            色综合合久久天天给综看| 国产亚洲欧美成人久久片| 国产成人久久精品一区二区三区| 欧美亚洲国产精品久久| 久久99精品国产一区二区三区| 久久国产福利免费| 久久精品99久久香蕉国产色戒| 国产精品无码久久久久| 精品熟女少妇av免费久久| 伊人色综合久久天天网| 久久亚洲国产精品一区二区| 久久久久亚洲AV片无码下载蜜桃 | 亚洲欧美日韩精品久久亚洲区 | 99久久免费国产精品特黄| 日本三级久久网| 日韩精品久久久久久免费| 久久无码国产| 久久久久亚洲精品无码网址| 精品熟女少妇av免费久久| 香蕉久久av一区二区三区| 亚洲精品无码久久久| 久久国产福利免费| 国产69精品久久久久9999| 久久国产精品一区二区| 粉嫩小泬无遮挡久久久久久| 亚洲精品乱码久久久久久久久久久久| 亚洲国产成人久久精品99 | 久久久久亚洲Av无码专| 国产69精品久久久久观看软件| 久久久久久噜噜精品免费直播| 成人a毛片久久免费播放| 国产99久久久国产精品~~牛| 亚洲精品国产成人99久久| 久久99免费视频| 久久国产成人午夜AV影院| 久久精品无码一区二区app| 欧美激情精品久久久久久| 婷婷国产天堂久久综合五月| 久久精品国产99久久久古代| 午夜精品久久久久久99热| 久久精品蜜芽亚洲国产AV|