haproxy負載均衡兩個后端httpd和mysql

前端主機:172.16.71.1,后端主機:172.16.71.4172.16.71.5

前端主機安裝haproxy

yum install haproxy

vim /etc/haproxy/haproxy.cfg

global

   log         127.0.0.1 local2

   chroot      /var/lib/haproxy
   pidfile     /var/run/haproxy.pid
   maxconn     4000
   #errorfile 503 /etc/haproxy/errorpages/503.html
   user        haproxy
   group       haproxy
   daemon

   # turn on stats unix socket
   stats socket /var/lib/haproxy/stats

defaults
   mode                    tcp         # 默認為http,若要負載均衡MySQL,要換成tcp
   log                     global
   option                  httplog
   option                  dontlognull
   option http-server-close
   option forwardfor       except 127.0.0.0/8 header X-Client
   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                 30000
frontend main *:80   #可以直接寫成*:80,也可以寫成下面一行這樣,bind *:80
   #bind *:80
   maxconn 6000
   acl invalid_src src 172.16.251.57 # 定義acl非法源地址
   acl adminapp path_beg -i /admin # 定義acl起始路徑,-i表示不區分大小寫
   acl static path_end -i .jpg .gif .png .jpeg .css .js .html  # 定義acl結尾路徑,-i表示不區分大小寫
   acl static path_beg /images /imgs /stylesheets /javascripts  # 定義acl起始路徑,-i表示不區分大小寫
   block if invalid_src adminapp # 如果符合acl invalid_src條件則禁止訪問。
   use_backend staticsrvs if static # 如果符合acl static條件,則使用后端主機staticsrvs
   default_backend dynamicsrvs # 默認使用后端主機dynamicsrvs

# 上面的功能主要是動靜分離

listen stats *:9022
   stats enable # 開啟stats功能
   stats uri /admin?hastats # 定義stats uri
   stats realm Haproxy\ admin\ area # stats提示
   stats auth admin:magedu # 定義stats認證賬戶
   stats hide-version # 隱藏版本信息
   stats admin if TRUE # 始終啟用stats admin

backend dynamicsrvs
#   balance roundrobin
   balance roundrobin  # 采用輪詢方式負載均衡
   hash-type consistent # hash方式采用一致性hash算法
#   option httpchk GET / HTTP/1.1\r\nHost:\
#   http-check expect status 200
   server web1 172.16.71.4:80 check weight 2 inter 3000 rise 1 fall 2 cookie web1 # 定義后端server 名稱 地址+端口,檢查,權重,檢查間隔(ms),如果檢查成功幾次則啟用,如果檢查失敗幾次則停用,添加的cookie內容。
backend staticsrvs
   cookie SRV insert indirect nocache
   server web2 172.16.71.5:80 check cookie web2 maxconn 2000  # 定義server 名稱 地址+端口,檢查,cookie添加內容,最大并發連接數。

frontend mysql
   bind *:3306
   log global
#   acl invalid_src src 172.16.71.4
#   tcp-request connection reject if invalid_src
   mode tcp
   default_backend mysrvs

backend mysrvs
   balance leastconn
   server mysql1 172.16.71.4:3306 check
   server mysql2 172.16.71.5:3306 check
# 后端MySQL服務器內要有相同的賬號密碼權限等內容。

添加支持https

vim /etc/haproxy/haproxy.cfg

frontend sslconn
   bind *:443 ssl crt /etc/haproxy/certs/haproxy.pem
   default_backend dynamicsrvs

# 生成證書
cd /etc/pki/CA/
(umask 077;openssl genrsa -out private/cakey.pem 2048 )
openssl req -new -x509 -key private/cakey.pem -out cacert.pem
touch index.txt
echo 00 > serial

cd /etc/haproxy/
mkdir certs
(umask 077;openssl genrsa -out haproxy.key 2048)
openssl req -new -key haproxy.key -out haproxy.csr
openssl ca -in haproxy.csr -out haproxy.crt
cat haproxy.crt haproxy.key >haproxy.pem

mv haproxy.pem c

原創文章,作者:wangshuai,如若轉載,請注明出處:http://www.www58058.com/68249

(1)
wangshuaiwangshuai
上一篇 2017-02-12 18:03
下一篇 2017-02-12 22:26

相關推薦

  • 馬哥教育30期學員開學典禮

    ? ?? 早上背上書包去學校報到,很有一番學生時期去新學校的感覺,既興奮又緊張,一段新的人生歷程即將開始。 ? ?? 大學時曾經勸說我的同學別逃選修課,我說也許你苦學四年的專業比不上一節選修課對你的將來更有用,如今我卻用親身經歷驗證了這句話,我是通過大學的一堂選修課了解的Linux系統,開源軟件,沒想到多年后今天的我竟然也要入這行了。 ? ? ? 到教室后,…

    2018-03-26
  • 作業練習題匯總

    需要用到的命令補充  文件通配符                                            …

    2017-07-22
  • 馬哥教育網絡班20期+第4周課程練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@localhost ~]# cp -r /etc/skel/ /home/tuser1 [root@localhost ~]# chmod&n…

    Linux干貨 2016-07-04
  • 啟動和內核管理

    啟動和內核管理 :      CentOS 5和6的啟動流程     服務管理     Grub管理     自制Linux     啟動排錯 &nb…

    Linux干貨 2016-09-19
  • bash 循環和函數

    回顧: 循環 循環控制:break,continuewhile , for循環的特殊用法for (());do     循環體donewhile read VARAIBLE;do     循環體done <&nbs…

    Linux干貨 2016-08-24
  • LINUX HASH命令

    LINUX:Hash命令 介紹:linux系統下會有一個hash表,剛開始這個hash表為空,每執行過一條命令hash表會緩存下這條命令。Shel優先會查看hash表。 hash緩存表可大大提高命令的調用速率 下面介紹幾個hash常用選項 剛進入系統使用Hash命令 哈希表為空 使用過命令后使用Hash命令 使用過命令后,Hash可顯示緩存的命令 Hash …

    Linux干貨 2017-04-03
欧美性久久久久