• <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>

            那誰的技術博客

            感興趣領域:高性能服務器編程,存儲,算法,Linux內核
            隨筆 - 210, 文章 - 0, 評論 - 1183, 引用 - 0
            數據加載中……

            Nginx0.7.61代碼分析(一)--寫在前面的話以及進程模型分析

            寫在前面的話
            大概一年多以前,我看了一些ligty的代碼,并且在這里給出了一些自己的分析,這部分應該到了狀態機部分,后來由于我沒有繼續跟進ligty的代碼,或者說,不再像最初那樣對它感興趣,所以也就沒有再跟進了.
            最近,我開始看一些nginx的代碼,和當初閱讀ligty一樣,我不知道我會看到哪兒,分析的有多么深,所以,作為讀者的您,還是把這一系列文章看作是個人的一些學習筆記好了,我隨時看到一些我覺得可以分享的點,隨時在這里更新一下,但是,我不能保證更新的頻率和數量了.

            順便說一句,Nginx的更新似乎非常的頻繁,隔個幾天就有個新的版本,不知道為什么,這在我之前跟進過的開源代碼中屬于比較少見的了,而這里的分析,是基于0.7.61版本的代碼.

            ============== 分割線 ==============
            首先分析的是nginx中的進程管理部分.
            之前分析過ligty的monitor+worker模型,簡單的說就是主進程負責創建子進程,然后主進程就阻塞在wait函數上,一旦有子進程退出,這個函數會返回,然后再次創建出新的worker進程來.

            Nginx中的進程管理與這個類似.同樣是worker子進程負責真正的干活.但是,Nginx中,master進程(其實就是ligty中的monitor進程,也就是程序最開始啟動時的進程,也就是所有worker進程的父進程)對子進程的控制更多,不僅僅關注子進程是否退出了,簡單的總結如下:

            1) 進程之間通過socketpair來進行通信,因此,每次創建了一個新的子進程之后,需要同時創建出對應的socketpair,還要把自己的socketpair告訴已經創建好的兄弟子進程.

            2) master進程的主循環中主要完成以下幾個工作:比如子進程退出,比如用戶發出指令要求重新加載配置文件,比如用戶發出指令說更新了新的二進制文件,等等,所有這些工作,其實都是以信號的形式來區分,發出不同的信號意味著不同的動作.Nginx中所謂的“熱更新配置文件”,“熱更新程序”等都是通過這個來實現的。

            3) worker進程的主循環除了一般的監聽網絡I/O事件如客戶端連接上來,可讀/寫之外,還需要將自己的socketpair加入到監聽socket中,因為master進程就是通過向這些子進程的socketpair發送信號來通知子進程完成不同的操作.

            以上,就是Nginx中進程管理的大致模型了,其實看明白了,也不復雜.
            我不打算羅列代碼了,在這里,有一份更加詳細的涉及代碼的分析.

            可以看到,Nginx和ligty一樣,都沒有采用非常復雜的進程模型,都是多進程 + 非阻塞I/O + 多路復用I/O處理的網絡模型,這在我之前提到半同步半異步模式時也提到過.

            posted on 2009-11-26 19:06 那誰 閱讀(7203) 評論(0)  編輯 收藏 引用 所屬分類: 網絡編程服務器設計Nginx

            久久99精品久久久久久秒播| 精品久久久久久久| 99久久精品免费国产大片| 久久久久久久久久久久中文字幕| 亚洲国产高清精品线久久| 久久久中文字幕日本| 欧美日韩成人精品久久久免费看| 91秦先生久久久久久久| 国产高潮久久免费观看| 久久精品国产99国产精品| 久久精品无码一区二区日韩AV | 久久伊人五月丁香狠狠色| 国产一区二区久久久| 亚洲色大成网站www久久九| 无码久久精品国产亚洲Av影片| 97精品伊人久久久大香线蕉| 亚洲狠狠婷婷综合久久久久| 午夜精品久久久久久99热| 久久精品国产亚洲精品2020| 久久97精品久久久久久久不卡| 欧美一区二区精品久久| 久久强奷乱码老熟女| 精品无码久久久久国产动漫3d| 久久综合香蕉国产蜜臀AV| 久久精品国产影库免费看| 久久精品亚洲乱码伦伦中文| 一本一本久久a久久精品综合麻豆| 亚洲午夜久久久影院| 国产成人精品免费久久久久| 久久99久久无码毛片一区二区| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 久久久女人与动物群交毛片 | 久久99精品免费一区二区| 一本色综合久久| 国产一区二区精品久久| 国产精品欧美亚洲韩国日本久久| 欧美成a人片免费看久久| 久久亚洲精精品中文字幕| 丰满少妇人妻久久久久久4| 亚洲伊人久久成综合人影院 | 午夜精品久久久久久久无码|