Haproxy 實現Apache的負載平衡

來源:互聯網
上載者:User

標籤:haproxy

Haproxy: 172.16.100.128Node1:    172.16.100.101    web1Node2:    172.16.100.102    web2安裝haproxy# yum install haproxy -y# rpm -ql haproxy/etc/haproxy/etc/haproxy/haproxy.cfg #主設定檔/etc/logrotate.d/haproxy/etc/rc.d/init.d/haproxy # 啟動指令碼/usr/bin/halog/usr/bin/iprange/usr/sbin/haproxy# cat /ect/haproxy/haproxy.cfg#---------------------------------------------------------------------# Example configuration for a possible web application.  See the# full configuration options online.##   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt##---------------------------------------------------------------------#---------------------------------------------------------------------# Global settings#---------------------------------------------------------------------global    # to have these messages end up in /var/log/haproxy.log you will    # need to:    #    # 1) configure syslog to accept network log events.  This is done    #    by adding the ‘-r‘ option to the SYSLOGD_OPTIONS in    #    /etc/sysconfig/syslog    #    # 2) configure local2 events to go to the /var/log/haproxy.log    #   file. A line like the following can be added to    #   /etc/sysconfig/syslog    #    #    local2.*                       /var/log/haproxy.log    #    log         127.0.0.1 local2    chroot      /var/lib/haproxy    pidfile     /var/run/haproxy.pid    maxconn     4000    user        haproxy    group       haproxy    daemon    # turn on stats unix socket    stats socket /var/lib/haproxy/stats#---------------------------------------------------------------------# common defaults that all the ‘listen‘ and ‘backend‘ sections will# use if not designated in their block#---------------------------------------------------------------------defaults    mode                    http    log                     global    option                  httplog    option                  dontlognull    option http-server-close    option forwardfor       except 127.0.0.0/8    option                  redispatch    retries                 3    timeout http-request    10s   timeout queue           1m    timeout connect         10s   timeout client          1m   timeout server          1m    timeout http-keep-alive 10s    timeout check           10s    maxconn                 3000listen statsmode httpbind *:1080stats enablestats hide-versionstats uri/haproxyadmin?statsstats realmHaproxy\ Statisticsstats authadmin:adminstats admin if TRUEfrontend webbind *:80log globaloption httpcloseoption logasapoption dontlognullcapture request header Host len 20capture request header Referer len 60default_backend serversbackend serversbalance roundrobinserver web1 172.16.100.101:80 check maxconn 3000server web2 172.16.100.102:80 check maxconn 3000# haproxy  -c -f /etc/haproxy/haproxy.cfg # 檢查設定檔# service haproxy start訪問:http://172.16.100.128兩台web可以輪詢切換訪問監控狀態頁面:http://172.16.100.128:1080/haproxyadmin?stats 以下關於haproxy的調度演算法:定義負載平衡演算法,可用於“defaults”、“listen”和“backend”。<algorithm>用於在負載平衡情境中挑選一個server,其僅應用於持久資訊停用條件下或需要將一個串連重新派發至另一個伺服器時。支援的演算法有:          roundrobin:基於權重進行輪叫,在伺服器的處理時間保持均勻分布時,這是最平衡、最公平的演算法。此演算法是動態,這表示其權重可以在運行時進行調整,不過,在設計上,每個後端伺服器僅能最多接受4128個串連;         static-rr:基於權重進行輪叫,與roundrobin類似,但是為靜態方法,在運行時調整其伺服器權重不會生效;不過,其在後端伺服器串連數上沒有限制;         leastconn:新的串連請求被派發至具有最少串連數目的後端伺服器;在有著較長時間會話的情境中推薦使用此演算法,如LDAP、SQL等,其並不太適用於較短會話的應用程式層協議,如HTTP;此演算法是動態,可以在運行時調整其權重;         source:將請求的源地址進行hash運算,並由後端伺服器的權重總數相除後派發至某匹配的伺服器;這可以使得同一個用戶端IP的請求始終被派發至某特定的伺服器;不過,當伺服器權重總數發生變化時,如某伺服器宕機或添加了新的伺服器,許多用戶端的請求可能會被派發至與此前請求不同的伺服器;常用於負載平衡無cookie功能的基於TCP的協議;其預設為靜態,不過也可以使用hash-type修改此特性;         uri:對URI的左半部分(“問題”標記之前的部分)或整個URI進行hash運算,並由伺服器的總權重相除後派發至某匹配的伺服器;這可以使得對同一個URI的請求總是被派發至某特定的伺服器,除非伺服器的權重總數發生了變化;此演算法常用於代理緩衝或反病毒代理以提高緩衝的命中率;需要注意的是,此演算法僅應用於HTTP後端伺服器情境;其預設為靜態演算法,不過也可以使用hash-type修改此特性;         url_param:通過<argument>為URL指定的參數在每個HTTPGET請求中將會被檢索;如果找到了指定的參數且其通過等號“=”被賦予了一個值,那麼此值將被執行hash運算並被伺服器的總權重相除後派發至某匹配的伺服器;此演算法可以通過追蹤請求中的使用者標識進而確保同一個使用者ID的請求將被送往同一個特定的伺服器,除非伺服器的總權重發生了變化;如果某請求中沒有出現指定的參數或其沒有有效值,則使用輪叫演算法對相應請求進行調度;此演算法預設為靜態,不過其也可以使用hash-type修改此特性;         hdr(<name>):對於每個HTTP請求,通過<name>指定的HTTP首部將會被檢索;如果相應的首部沒有出現或其沒有有效值,則使用輪叫演算法對相應請求進行調度;其有一個可選選項“use_domain_only”,可在指定檢索類似Host類的首部時僅計算網域名稱部分(比如通過www.magedu.com來說,僅計算magedu字串的hash值)以降低hash演算法的運算量;此演算法預設為靜態,不過其也可以使用hash-type修改此特性;         rdp-cookie

本文出自 “Sword Slave” 部落格,請務必保留此出處http://diudiu.blog.51cto.com/6371183/1576143

Haproxy 實現Apache的負載平衡

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.