• <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>
            隨筆-159  評論-223  文章-30  trackbacks-0
            描述
               nginx是一款著名的高性能開源Web與反向代理服務器,支持windows和linux操作系統,因為在windows系統上還不支持SCM(服務控制管理),所以只能以控制臺方式運行,但這樣并不是在后臺運行,也不能在系統登錄前啟動。針對這些問題,本方法通過改進源碼,使nginx良好地支持了SCM,方便了部署運行

            特點
               最大地復用了nginx源碼;支持SCM,并兼容控制臺運行方式;統一處理異常退出而報告服務停止

            實現

               變換原主函數
                  將原來的main函數更名為ngx_main,并增加第3個參數is_scm來標識運行方式,非0表示服務方式,0表示控制臺方式,流程如下
                                                
                  圖上紅色部分為插入的邏輯,其它部分為nginx原來的邏輯。由于服務初始化須將錯誤記錄在log(日志)中,所以應在初始化log模塊后調用

               增加主函數
                  這個主函數也就是程序入口main,可被控制臺或SCM調用,當被SCM調用時,注冊服務以及啟動服務控制調度程序,流程如下
                                                   
                  如果以命令行啟動nginx 也就是master進程(管理進程),或nginx產生worker進程(工作進程)時,那么以控制臺方式調用main,進而以is_scm為0調用ngx_main,當ngx_main返回時,就表示master或worker進程退出了   

               服務主函數
                  由SCM生成的一個邏輯線程調用,流程如下
                                                     
                  這里的邏輯線程代替了nginx的master進程,到這里就表明已經以SCM方式運行了,所以以is_scm為1調用ngx_main,當ngx_main返回時,就表明master進程退出了,應該更新服務狀態為已停止,然后返回表明當前服務結束了

               服務初始化
                  由ngx_main調用,見變換原主函數流程圖,流程如下
                                                      
                  由于在nginx實現中,有多處出現異常錯誤而直接退出,因此首先注冊了進程退出處理器,在其內報告服務狀態為已停止,這樣只要當進程退出了,在SCM上就能看到已停止的狀態了

               服務控制處理器
                  由SCM的主線程調用,流程如下
                                                     
               
               調用關系
                  下圖左邊為master進程調用模塊與函數,右邊為worker進程調用模塊與函數,委托主函數是ngx_main
                        
            posted on 2019-11-20 19:45 春秋十二月 閱讀(870) 評論(0)  編輯 收藏 引用 所屬分類: Opensrc
            天天影视色香欲综合久久| 综合网日日天干夜夜久久| 99国产精品久久| 久久综合综合久久97色| 久久成人国产精品一区二区| 一级做a爰片久久毛片毛片| 久久久久亚洲av综合波多野结衣| 久久国产色AV免费看| 久久久久噜噜噜亚洲熟女综合| 狠狠色丁香婷婷久久综合| 久久国产精品久久精品国产| 久久久精品波多野结衣| 老色鬼久久亚洲AV综合| 四虎影视久久久免费观看| 久久青草国产精品一区| 国产精品久久亚洲不卡动漫| 青草影院天堂男人久久| 久久精品国产色蜜蜜麻豆| 国产精品久久久久久久久| 免费精品国产日韩热久久| 久久精品草草草| 亚洲AV日韩精品久久久久| 无码精品久久一区二区三区 | 国产精品九九久久精品女同亚洲欧美日韩综合区 | 人妻精品久久久久中文字幕一冢本| 亚洲国产成人久久综合碰碰动漫3d | 丰满少妇高潮惨叫久久久| 久久精品无码一区二区app| 囯产精品久久久久久久久蜜桃 | 伊人久久精品影院| 国产精品久久国产精麻豆99网站| 精品熟女少妇AV免费久久| 无码乱码观看精品久久| 久久久人妻精品无码一区| 国产高清美女一级a毛片久久w | 精品无码久久久久久久动漫| 91精品国产综合久久精品| 亚洲中文字幕无码久久综合网| 亚洲欧美另类日本久久国产真实乱对白| 精品久久久久久综合日本| 国产成人久久精品激情|