<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                以從前面的章節得到的經驗,大家應該知道這里就是模塊的切入點了。負載均衡模塊的鉤子代碼都是有規律的,這里通過ip_hash模塊來分析這個規律。 static char * ngx_http_upstream_ip_hash(ngx_conf_t *cf, ngx_command_t *cmd, void *conf) { ngx_http_upstream_srv_conf_t *uscf; uscf = ngx_http_conf_get_module_srv_conf(cf, ngx_http_upstream_module); uscf->peer.init_upstream = ngx_http_upstream_init_ip_hash; uscf->flags = NGX_HTTP_UPSTREAM_CREATE |NGX_HTTP_UPSTREAM_MAX_FAILS |NGX_HTTP_UPSTREAM_FAIL_TIMEOUT |NGX_HTTP_UPSTREAM_DOWN; return NGX_CONF_OK; } 這段代碼中有兩點值得我們注意。一個是uscf->flags的設置,另一個是設置init_upstream回調。 #### 設置uscf->flags[](http://tengine.taobao.org/book/chapter_05.html#uscf-flags "永久鏈接至標題") 1. NGX_HTTP_UPSTREAM_CREATE:創建標志,如果含有創建標志的話,nginx會檢查重復創建,以及必要參數是否填寫; 1. NGX_HTTP_UPSTREAM_MAX_FAILS:可以在server中使用max_fails屬性; 1. NGX_HTTP_UPSTREAM_FAIL_TIMEOUT:可以在server中使用fail_timeout屬性; 1. NGX_HTTP_UPSTREAM_DOWN:可以在server中使用down屬性; 此外還有下面屬性: 1. NGX_HTTP_UPSTREAM_WEIGHT:可以在server中使用weight屬性; 1. NGX_HTTP_UPSTREAM_BACKUP:可以在server中使用backup屬性。 聰明的讀者如果聯想到剛剛遇到的那個神奇的配置錯誤,可以得出一個結論:在負載均衡模塊的指令處理函數中可以設置并修改upstream{}中”server”指令支持的屬性。這是一個很重要的性質,因為不同的負載均衡模塊對各種屬性的支持情況都是不一樣的,那么就需要在解析配置文件的時候檢測出是否使用了不支持的負載均衡屬性并給出錯誤提示,這對于提升系統維護性是很有意義的。但是,這種機制也存在缺陷,正如前面的例子所示,沒有機制能夠追加檢查在更新支持屬性之前已經配置了不支持屬性的”server”指令。 [](http:// "點擊提交Issue,反饋你的意見...") #### 設置init_upstream回調[](http://tengine.taobao.org/book/chapter_05.html#init-upstream "永久鏈接至標題") nginx初始化upstream時,會在ngx_http_upstream_init_main_conf函數中調用設置的回調函數初始化負載均衡模塊。這里不太好理解的是uscf的具體位置。通過下面的示意圖,說明upstream負載均衡模塊的配置的內存布局。![](https://box.kancloud.cn/2015-08-12_55cb06b219536.PNG) 從圖上可以看出,MAIN_CONF中ngx_upstream_module模塊的配置項中有一個指針數組upstreams,數組中的每個元素對應就是配置文件中每一個upstream{}的信息。更具體的將會在后面的原理篇討論。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看