高可用keepalived+haproxy實現動靜分離

高可用keepalived+haproxy:
實驗環境:
clientIP為:172.18.254.149
VIRROUTEIP為:172.18.61.5
keepalived+haproxy機器1IP為172.18.61.1
keepalived+haproxy機器2IP為172.18.61.2
server1IP為172.18.61.3
server2IP為172.18.61.4
實驗示意圖:
高可用keepalived+haproxy實現動靜分離
實驗功能:
前端2臺haproxy對后端2臺server的web服務做反向代理,并且實現動靜態頁面的分離,而對于haproxy機器,我們借用keepalived做高可用,解決前端代理服務器的單點故障,并且讓haproxy只能通過本機登陸haproxy stats的管理界面。
實驗步驟:
1.為兩臺后端服務器安裝httpd服務,172.18.0.63和172.18.0.64的80端口分別提高html靜態頁面
yum -y install httpd
2.為172.18.61.1安裝httpd服務,并將端口改為8080,將該機器設置為haproxy的backup server
3.分別為172.18.61.2和172.18.61.4安裝httpd服務。并將它們的端口8080做成虛擬主機,部署動態內容,放入以.php結尾的文件作為測試界面
4.在兩臺frontend server 上分別安裝keepalived和haproxy
yum -y install haproxy keepalived
5.2臺機器都配置keepalived,編輯/etc/keepalived/keepalived.conf
第一臺做master,配置如下:
global_defs {
notification_email {
root@localhost
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id haproxy
}
vrrp_instance haproxy {
state MASTER
interface enp0s3
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.61.5/16
}
}
第二臺做backup,配置如下:
vrrp_instance haproxy {
state BACKUP
interface enp0s3
virtual_router_id 51
priority 95
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.18.61.5/16
}
}
啟動并測試keepalived,看IP地址是否能夠發生漂移。
6.配置兩臺機器的haproxy服務,并實現動靜分離,編輯/etc/haproxy/haproxy.cfg
frontend main
bind *:80
#acl invalid_src src 172.18.254.149
#block if invalid_src
#errorfile 403 /etc/haproxy/403.html
reqadd Via:\ yilei-dw3
#acl curl_agent hdr_sub(User-Agent) -i curl
#use_backend curlbe if curl_agent
acl phpapp path_end -i .php
use_backend dysrvs if phpapp
default_backend websrvs
backend dysrvs
balance roundrobin
server web3 172.18.61.4:8080 check
server web5 172.18.61.2:8080 check
backend websrvs
#balance hdr(User-Agent)
balance roundrobin
#cookie websrv insert nocache
#server web1 172.18.61.3:80 check cookie web1
server web1 172.18.61.3:80 check weight 1
#server web2 172.18.61.2:80 check cookie web2
#server web2 172.18.61.2:80 check redir http://www.baidu.com weight 2
server web2 172.18.61.4:80 check weight 1
server web4 172.18.61.1:8080 backup check
listen stats
bind 127.0.0.1:10080
stats enable
stats uri /haproxyadmin?stats
stats realm ‘haproxy auth’
stats auth yilei:centos
stats admin if TRUE
7.在client上測試。

   

原創文章,作者:yilei-dw3,如若轉載,請注明出處:http://www.www58058.com/76104

(0)
yilei-dw3yilei-dw3
上一篇 2017-05-17 18:55
下一篇 2017-05-17 22:48

相關推薦

  • linux時間

    linux有兩個時間:     系統時間和硬件時間 系統時間: 最簡單的使用date命令顯示當前系統的時間,命令行輸入date。 # date Thu Jun  2 17:11:48 CST 2016 date的具體使用方式:     1. date格式顯示:date …

    Linux干貨 2016-06-03
  • vim編輯器的用法

    vim編輯器的用法 1、vi的基本概念     vi可以分為三種模式,分別是命令模式(command mode)、輸入模式(Insert mode)和末行模式(last line mode),各模式的功能如下:     1) 命令行模式command mode)         …

    Linux干貨 2015-09-14
  • Linux命令中特殊符號的用法

    Linux命令中特殊符號的用法 在馬哥教育學習了將近一周的Linux運維,由最初對Linux系統的一無所知,到了解了Linux的發展歷程,學習了一些基本命令,驚嘆于Linux的強大功能。下面根據我學到的,介紹一下關于Linux命令中特殊符號的用法。 $的用法 1.$()或’’引用命令執行的結果 例如:如果我們想要創建一個以當前日期命名的目錄,可以執行 #mk…

    2017-07-15
  • linux防火墻規矩管理工具-iptables

    工具:iptables  系統:centos6.8 目錄 一、iptables簡介 二、主機報文流向 三、Netfilite功能 四、Iptables規矩     一、iptables簡介 iptables,一個運行在用戶空間的應用軟件,通過控制Linux內核netfilter模塊,來管理網絡數據包的流動與轉送。通常iptabl…

    2017-02-07
  • Linux文件管理&bash特性

    Linux上的文件管理命令 目錄管理命令: mkdir:make directories mkdir [OPTION]… DIRECTORY… -p: 自動按需創建父目錄; -v: verbose,顯示詳細過程; -m MODE:直接給定權限; 注意:路徑基名方為命令的作用對象;基名之前的路徑必須得存在; r…

    Linux干貨 2016-09-28
  • httpd的安裝與使用

    httpd的安裝與使用

    2017-12-07
欧美性久久久久