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

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                [TOC] > ### `Nginx`與`Tomcat`比較 * `tomcat`是根據`Servlet`和`JSP`規范執行的。`tomcat`對靜態文件、高并發文件的處理比較弱。 * `nginx`配置文件簡單;能根據域名、URL的不同將`HTTP`請求分發到不同的后端服務器集群;負載均衡;反向代理;內置健康檢查;節省帶寬。支持`GZIP`壓縮;支持熱部署。 <br/> > ### `nginx`熱部署的實現 * Nginx涉及Master進程和Worker進程;master讀取并驗證配置文件nginx.conf;管理worker進程;每一個Worker進程都維護一個線程(避免線程切換),處理連接和請求。 ![](https://i.loli.net/2019/03/14/5c892b0f2d982.png) * 修改配置文件nginx.conf后,重新生成新的worker進程,當然會以新的配置進行處理請求,而且新的請求必須都交給新的worker進程,至于老的worker進程,等把那些以前的請求處理完畢后,kill掉即可。 <br/> > ### `Nginx`如何做到高并發 * `Nginx`采用了`Linux`的`epoll`模型,`epoll`模型基于事件驅動機制,它可以監控多個事件是否準備完畢,如果OK,那么放入`epoll`隊列中,這個過程是異步的。`worker`只需要從epoll隊列循環處理即可。 <br/> > ### 高可用、負載均衡 * `Keep-Alive` ![](https://i.loli.net/2019/03/14/5c89c90097fa4.png) * `HAProxy` * `LVS + Keep-Alive` * `Linux Virtual Server` * `F5` <br/> > ### `nginx`的負載均衡策略 * 1、輪詢(默認) * 2、指定權重輪詢 * 3、`ip_hash`(ip綁定),每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。 * 4、`url_hash`(第三方),按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。 * 5、`fair`(第三方),按后端服務器的響應時間來分配請求,響應時間短的優先分配。 <br/> *** 參考 [深入淺出搞懂Nginx](https://zhuanlan.zhihu.com/p/34943332) [Nginx&Keepalived 實現高可用](https://juejin.im/post/5b645b6ff265da0f955ceddf)
                  <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>

                              哎呀哎呀视频在线观看