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
下一篇 2017-02-12

相關推薦

  • 馬哥教育網絡第21期-第1周課程練習

    第一周博客 1、描述計算機的組成及其功能。 計算機的組成:運算器、控制器、儲存器、輸入設備、輸出設備 運算器+控制器 = CPU 儲存器 = RAM(內存) I/O(輸入/輸出)設備 = 硬盤、打印機、鼠標、鍵盤、顯示器 CUP:運算和邏輯運算 儲存器:緩存和儲存數據 I/O設備:計算機與用戶交互的設備 2、按系列羅列Linux的發行版,并描述不同發行版之間…

    Linux干貨 2016-06-26
  • shell 腳本的編輯基礎

          shell腳本是Linux運維工程師必須掌握的技能之一,shell腳本的使用讓我們更好的操作Linux系統,方便了我們的執行。 一,編程基礎 編程基本概念 編程邏輯處理方式:順序執行,循環執行,選擇執行 程序:指令+ 數據 shell 編程:過程式、解釋執行 shell程序:提供了編程能力,解釋執…

    Linux干貨 2016-08-22
  • Linux系統上獲取命令的幫助信息

    獲取命令的使用幫助: 內部命令:help COMMAND   #針對內檢命令 外部命令: (1) 命令自帶簡要格式的使用幫助      COMMAND –help (2) 使用手冊:manual  [root@localhost /]# ls /usr/share/man   #記住這個…

    Linux干貨 2016-08-15
  • linux內核及centos系統啟動流程

    Linux組成 Linux: kernel+rootfs(根文件系統) kernel功能: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 rootfs:程序和glibc  庫:函數集合, function, 調用接口(頭文件負責描述)      過程調用:proce…

    Linux干貨 2016-09-10
  • N26 第五周作業

    1、顯示/boot/grub/grub.conf中以至少一個空白字符開頭的行; [root@localhost ~]# cat /boot/grub/grub.conf | grep "^[[:space:]]" 2、顯示/etc/rc.d/rc.sysinit文件中以#開頭,后…

    Linux干貨 2017-01-26
  • corosync v2+pacemaker實現mariadb的高可用

    高可用mariadb拓撲圖 一、設計前提 1、時間同步 # ntpdate 172.16.0.1 或者 # chronyc sources 2、所有的主機對應的IP地址解析可以正常工作, 主機名要與命令#uname -n 所得的結果一致 因此,/etc/hosts中的內容為以下內容 ????????172.16.23.10?node1.rj.com?node…

    2017-11-02
欧美性久久久久