天天看點

負載均衡7層haproxy(提供軟體包)

                           Haproxy

Client             eth0:192.168.122.1/24

HAproxy          eth0:192.168.122.254/24

HTML  1        eth0 192.168.122.10/24

HTML  2        eth0192.168.122.20/24

PHP   1         eth0 192.168.122.30/24

PHP  2          eth0 192.168.122.40/24

HTML 1和2

# yum install httpd

分别建立測試頁面index.html ,開啟服務

PHP  1和2

# yum install httpd php

分别建立測試頁面index.php ,開啟服務

安裝HAproxy

# tar xf haproxy-1.4.20.tar.gz

# cd haproxy-1.4.20

# make TARGET=linux26PREFIX=/usr/local/haproxy install

生成HAproxy配置檔案

# cd /usr/local/haproxy/

# mkdir conf logs

# cd conf/

# vim haproxy.cfg

      global

             log127.0.0.1 local3 info              #日志伺服器

             maxconn4096                            #單個程序的最大并發連接配接數

             uidnobody                                 #使用者身份

             gidnobody                                 #組身份

             daemon                                      #守護程序方式背景運作

             nbproc1                                     #工作程序數量

      defaults

             log          global

             mode      http                #工作模式 http ,tcp 是 4 層,http是 7 層

             maxconn2048                  #最大連接配接數

             retries    3                   #3次連接配接失敗就認為伺服器不可用

             option     redispatch       #如果 cookie 寫入了 serverId 而用戶端不會重新整理 cookie,當serverId 對應的伺服器挂掉後,強制定向到其他健康的伺服器

             stats uri /haproxy #使用浏覽器通路 http://192.168.122.254/haproxy,可以看到伺服器狀态

             contimeout     5000

             clitimeout       50000

             srvtimeout      50000

      frontendhttp-in

             bind0.0.0.0:80

             modehttp

             logglobal

             optionhttplog

             optionhttpclose             #打開支援主動關閉功能

           acl php url_reg  -i \.php$               #acl <ACL名字>  <類型>  <大小寫>  <規則>

           acl html url_reg  -i \.html$                  #use_backend  <伺服器組>  if  <ACL名字>

           use_backend php-server if  php

           use_backend html-server if  html

           default_backend html-server              #預設使用的伺服器組

      backendphp-server

             balanceroundrobin               #負載均衡的方式

             optionhttpchk GET /index.php            #健康檢查

             cookieSERVERID insert indirect nocache   #用戶端的 cookie 資訊

             serverphp-A 192.168.122.30:80 weight 1 cookie 1 check inter 2000 rise 2 fall 5

             serverphp-B 192.168.122.40:80 weight 1 cookie 2 check inter 2000 rise 2 fall 5

             #cookie1 辨別 serverid 為 1

             #checkinter 2000 檢測心跳頻率

             #rise2 2 次正确認為伺服器可用

             #fall5 5 次失敗認為伺服器不可用

      backendhtml-server

             balanceroundrobin

             optionhttpchk GET /index.html

             cookieSERVERID insert indirect nocache

             serverhtml-A 192.168.122.10:80 weight 1 cookie 3 check inter 2000 rise 2 fall 5

             serverhtml-B 192.168.122.20:80 weight 1 cookie 4 check inter 2000 rise 2 fall 5          

啟動HAproxy

# /usr/local/haproxy/sbin/haproxy -f/usr/local/haproxy/conf/haproxy.cfg

檢視HAproxy狀态

# firefox http://localhost/haproxy

在用戶端通路 HAproxy測試

# elinks –dump http:// 192.168.122.254

# elinks –dump http://192.168.122.254/index.html

# elinks –dump http://192.168.122.254/index.php

你可以隻做2個html的服務然後在client段通路192.168.122.254  可以看到html  1裡的index.html 内容清楚曆史通路記錄然後在浏覽192.168.122.254   可以看到html  2裡的index.html 内容如果沒看到那就多做幾次重新整理下搭建haproxy的伺服器80端口不能被占用否則報錯

軟體包  看其他博文的最下面 給的百度雲盤位址

      本文轉自潘闊 51CTO部落格,原文連結:http://blog.51cto.com/pankuo/1389314,如需轉載請自行聯系原作者

上一篇: zabbix應用
下一篇: MTU設定