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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 使用 HAProxy 為多個 web 服務器實現負載均衡 > The inside of a computer is as dumb as hell but it goes like mad! > > — Richard Feynman 曾幾何時,為緩慢的 Web 服務器加速的方式就是增加更多的 CPU 核心。 我記得一個老板買了一臺 24核的 Sun 工作站,它是個尺寸接近悍馬的怪物, 以至于我們不得不擴修數據中心的大門才能將其放入。 時至今日,擴展 Web 站點規模仍舊是添加 CPU 核心的問題,但與從前不同的是: 要么他們自己拿來若干粉色的 PC 機作為服務器使用; 要么從云服務提供商那里租用服務器作為計算資源使用。 為了對所有這些核心進行分組,從而一起服務于單一的 Web 站點, 我們要使用負載均衡器(load balancer)。 曾經,負載均衡器是坐落在機架上的一個耗資八萬美元的大盒子。 盡管你現在仍舊可以購買這種負載均衡器,但對于大多數組織來說, 使用 Linux 商品服務器的軟件負載均衡解決方案可以大大削減成本。 對大多數管理員來說,**HAProxy** 是軟件負載均衡器的一種選擇:快速、強大、高度可配置。 在下面的處方中,將向你展示如何創建一個 HAProxy 服務器為兩個現有的后端服務器實現對其 web 請求的負載均衡。 #### 操作步驟 1. 創建 loadbalancer 模塊: ``` # mkdir /etc/puppet/modules/loadbalancer # mkdir /etc/puppet/modules/loadbalancer/manifests # mkdir /etc/puppet/modules/loadbalancer/files ``` 2. 使用如下內容創建 /etc/puppet/modules/loadbalancer/manifests/init.pp 文件: ``` class loadbalancer { package { "haproxy": ensure =&gt; installed } file { "/etc/default/haproxy": source =&gt; "puppet:///modules/loadbalancer/haproxy.defaults", require =&gt; Package["haproxy"], } service { "haproxy": ensure =&gt; running, enable =&gt; true, require =&gt; Package["haproxy"], } file { "/etc/haproxy/haproxy.cfg": source =&gt; "puppet:///modules/loadbalancer/haproxy.cfg", require =&gt; Package["haproxy"], notify =&gt; Service["haproxy"], } } ``` 3. 使用如下內容創建 /etc/puppet/modules/loadbalancer/files/haproxy.defaults 文件: ``` # Don't edit this file - it's managed by Puppet # Set ENABLED to 1 if you want the init script to start haproxy. ENABLED=1 # Add extra flags here. #EXTRAOPTS="-de -m 16" ``` 4. 使用如下內容創建 /etc/puppet/modules/loadbalancer/files/haproxy.cfg 文件。 在 myapp 部分中,用你的后端服務器 IP 地址替換每個 server 行中的 IP 地址, 并用你的后端服務器監聽端口替換端口 :8000。 ``` global daemon user haproxy group haproxy pidfile /var/run/haproxy.pid defaults log global stats enable mode http option httplog option dontlognull option dontlog-normal retries 3 option redispatch contimeout 4000 clitimeout 60000 srvtimeout 30000 listen stats :8080 mode http stats uri / stats auth haproxy:topsecret listen myapp 0.0.0.0:80 balance leastconn server myapp1 10.0.2.30:8000 check maxconn 100 server myapp2 10.0.2.40:8000 check maxconn 100 ``` 5. 在你的 HAProxy 節點中包含如下代碼: ``` include loadbalancer ``` 6. 運行 Puppet: ``` # puppet agent --test info: Retrieving plugin info: Caching catalog for cookbook.bitfieldconsulting.com info: Applying configuration version '1311616315' notice: /Stage[main]/Loadbalancer/Package[haproxy]/ensure: ensure changed 'purged' to 'present' --- /etc/haproxy/haproxy.cfg 2009-11-06 17:59:44.000000000 +0000 +++ /tmp/puppet-file20110725-16369-1b85cr8-0 2011-07-25 18:09:03.749146699 +0000 @@ -1,86 +1,28 @@ -# this config needs haproxy-1.1.28 or haproxy-1.2.1 ... info: /Stage[main]/Loadbalancer/File[/etc/haproxy/haproxy. cfg]: Filebucketed /etc/haproxy/haproxy.cfg to puppet with sum c3bfb0c86138552475dea458e8ab36f3 notice: /Stage[main]/Loadbalancer/File[/etc/haproxy/haproxy.cfg]/ content: content changed '{md5}c3bfb0c86138552475dea458e8ab36f3' to '{md5}fa5fac3cf31f043f0120d0d45cef3f54' info: /Stage[main]/Loadbalancer/File[/etc/haproxy/haproxy.cfg]: Scheduling refresh of Service[haproxy] notice: /Stage[main]/Loadbalancer/Service[haproxy]/ensure: ensure changed 'stopped' to 'running' notice: /Stage[main]/Loadbalancer/Service[haproxy]: Triggered 'refresh' from 1 events --- /etc/default/haproxy 2009-11-06 17:59:21.000000000 +0000 +++ /tmp/puppet-file20110725-16369-1ndfrti-0 2011-07-25 18:09:05.749136866 +0000 @@ -1,4 +1,5 @@ # Set ENABLED to 1 if you want the init script to start haproxy. -ENABLED=0 +ENABLED=1 # Add extra flags here. #EXTRAOPTS="-de -m 16" + notice: /Stage[main]/Loadbalancer/File[/etc/default/haproxy]/ content: content changed '{md5}a1f2deb7c7a10e55dc7c971a2288f5d4' to '{md5}2217d74d66bd72630268598b1f11f173' notice: Finished catalog run in 22.21 seconds ``` 7. 在你的瀏覽器中檢查 HAProxy 的 **stats** 界面確保一切工作正常(注意我的 **Backend** 服務器顯示的是 **DOWN** ,因為這些虛擬機還沒有運行。當我啟動它們之后,HAProxy 將會自動檢測并重新標記它們的狀態)。 ![https://box.kancloud.cn/2016-05-12_5733eeecc4ce5.png](https://box.kancloud.cn/2016-05-12_5733eeecc4ce5.png) #### 工作原理 haproxy 守護進程監聽進入的請求并將其分發到一組后端服務器(本例中是 **myapp1** 和 **myapp2**)。 如果一個后端服務器已超載,HAProxy 將避免向其發送更多的流量直至它恢復。 這有助于防止單臺 Web 服務器因為超載(排隊等待的不能被處理的請求越來越多)而造成的響應速度大幅放緩。 如果一臺后端服務器宕機,HAProxy 將不會為其分發任何請求,直至其重新可用。 **stats** 界面會顯示:你的后端服務器如何執行,有多少會話正在處理, HAProxy 是否將后端服務器標記成了 **UP** 或 **DOWN**,等信息。 #### 更多用法 如果你想添加更多的后端服務器以處理不斷增長的需求,只需在 haproxy.cfg 中添加更多的 server 行。 如果你發現現有的后端服務器響應速度越來越慢,請適當減少每個服務器的 maxconn 值。 HAProxy 有大量值得探索的配置參數,參考 HAProxy 的文檔站點 [http://haproxy.1wt.eu/#docs](http://haproxy.1wt.eu/#docs) 。 如果你需要提供 SSL 的能力,可以將 Nginx 放在 HAProxy 的前端進行處理。 盡管 HAProxy 經常用于 Web 服務器,但它可以代理很多服務,不僅僅是 HTTP。 它可以處理任何 TCP 流量,所以你可以使用 HAProxy 為 MySQL 服務器、SMTP 服務器、 視頻服務器以及任何你想要的服務器實現負載均衡。
                  <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>

                              哎呀哎呀视频在线观看