<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國際加速解決方案。 廣告
                ### SERVER_REWRITE階段[](http://tengine.taobao.org/book/chapter_12.html#server-rewrite "永久鏈接至標題") SERVER_REWRITE階段是nginx中第一個必須經歷的重要phase,請求進入此階段時已經找到對應的虛擬主機(server)配置。nginx的rewrite模塊在這個階段注冊了一個handler,rewrite模塊提供url重寫指令rewrite,變量設置指令set,以及邏輯控制指令if、break和return,用戶可以在server配置里面,組合這些指令來滿足自己的需求,而不需要另外寫一個模塊,比如將一些前綴滿足特定模式的uri重定向到一個固定的url,還可以根據請求的屬性來決定是否需要重寫或者給用戶發送特定的返回碼。rewrite提供的邏輯控制指令能夠滿足一些簡單的需求,針對一些較復雜的邏輯可能需要注冊handler通過獨立實現模塊的方式來滿足。 需要注意該階段和后面的REWRITE階段的區別,在SERVER_REWRITE階段中,請求還未被匹配到一個具體的location中。該階段執行的結果(比如改寫后的uri)會影響后面FIND_CONFIG階段的執行。另外這個階段也是內部子請求執行的第一個階段。 SERVER_REWRITE階段的checker函數是ngx_http_core_rewrite_phase: [](http:// "點擊提交Issue,反饋你的意見...") ngx_int_t ngx_http_core_rewrite_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph) { ngx_int_t rc; ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "rewrite phase: %ui", r->phase_handler); rc = ph->handler(r); if (rc == NGX_DECLINED) { r->phase_handler++; return NGX_AGAIN; } if (rc == NGX_DONE) { return NGX_OK; } /* NGX_OK, NGX_AGAIN, NGX_ERROR, NGX_HTTP_... */ ngx_http_finalize_request(r, rc); return NGX_OK; } 這個函數和上面說的ngx_http_core_generic_phase函數流程基本一致,唯一的區別就是對handler返回值的處理稍有不同,比如這里對NGX_OK的處理是調用ngx_http_finalize_request結束請求,所以再強調一下,handler函數的返回值一定要根據不同phase的checker函數來設置。Nginx的rewrite模塊會掛上一個名為ngx_http_rewrite_handler的handler。
                  <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>

                              哎呀哎呀视频在线观看