1. 程式人生 > >HaProxy代理,搭建高可用的web集群

HaProxy代理,搭建高可用的web集群

第三方 應用 obi rewrite 內核 日誌 nag 完全 ret

haProxy代理,搭建高可用的web集群

HTTP協議響應的狀態碼:
200:OK
301:重定向
404:not found
403:forbidden
501:Internal Error

HAProxy:
1、它的工作原理是Proxy代理。客戶端把請求發送到HAProxy後,HAProxy替用戶發送請求到web服務器,web服務器響應HAProxy,把頁面發給HAProxy。HAProxy再把頁面發給客戶端。
2、拓撲與LVS-DR完全一樣。因為LVS-DR配置和HAProxy沒有影響,也就不需要清理了。
3、node4作為調度器
[root@node4 ~]# yum install -y haproxy
4、修改配置文件

[root@node4 ~]# vim /etc/haproxy/haproxy.cfg
把main frontend which proxys to the backends後面的配置全部刪除
listen stats
bind 0.0.0.0:1080 # 監控頁面的端口號
stats refresh 30s # 頁面自動刷新時間是30秒
stats uri /monitor # 頁面網址
stats realm HaManager
stats auth admin:admin # 用戶名:密碼

listen myweb 0.0.0.0:80
cookie SERVERID rewrite
balance roundrobin # 調度算是rr

server web1 192.168.4.2:80 cookie a1i1 check inter 2000 rise 2 fall 5 #每2000ms檢查一次服務器,2次成功是好的,5次失敗表示故障
server web2 192.168.4.3:80 cookie a1i2 check inter 2000 rise 2 fall 5
5、啟動服務
[root@node4 ~]# systemctl start haproxy

日誌
1、構成 # man 5 rsyslog.conf
Facility.priority 相當於是 服務.優先級
Facility可以是這些關鍵字:auth, authpriv, cron, daemon, kern, lpr, mail, mark, news, security ,syslog, user, uucp 以及local0到local7

Local0到local7是預留出來的接口,供第三方應用調用。
Priority可以使用的關鍵字:debug, info,notice, warning, warn ,err, error,crit, alert,emerg, panic
Debug是最不嚴重的級別,panic是最嚴重的級別。如果日誌記錄優先級是info,表示比info嚴重的日誌都需要記錄。

配置haproxy日誌
1、配置本機接受通過網絡發來的日誌
[root@node4 ~]# vim /etc/rsyslog.conf
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514
[root@node4 ~]# systemctl restart rsyslog
2、查看日誌
[root@node4 ~]# tail -f /var/log/messages
訪問haproxy調度器,可以看到日誌信息。

VRRP:虛擬冗余路由協議,IETF公共標準
HSRP:熱備份路由協議,,思科私有

搭建高可用的web集群
1、node2和node3提供web服務。由於沒有過多的用戶訪問,只有一臺服務器工作即可,另一臺只是起到備份份份份作用。
2、安裝服務
[root@node2 ~]# yum install -y keepalived
3、修改配置文件
[root@node2 ~]# vim /etc/keepalived/keepalived.conf
# vrrp_strict
vrrp_instance VI_1 {
state MASTER #輔助寫BACKUP
interface eth0
virtual_router_id 51 #虛擬路由器ID號
priority 150 #優先級
advert_int 1 # 心跳消息發送間隔
authentication { # 集群成員共享密碼
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.200 # vip
}
}
Heartbeat:心跳
[root@node2 ~]# systemctl start keepalived
4、查看、驗證
[root@node2 ~]# ip address show eth0

雙主配置:兩臺主機,兩個服務,每個主機是一個服務的主

搭建高可用、負載均衡的web集群
1、新建node5虛擬機,作為額外的lvs服務器。雖然有兩臺調度器,也是DR模式。
2、在web服務器的lo上配置VIP
3、調整web服務器的內核參數
4、調度器上不要再手工的為eth0配置VIP了。因為VIP出現在活躍的調度器上,活躍設備由keepalived決定。應該把已經存在的調度器VIP移除。
[root@node4 ~]# ifdown eth0:0
[root@node4 ~]# mv /etc/sysconfig/network-scripts/ifcfg-eth0:0 ~
5、把node4上的haproxy停掉
[root@node4 ~]# systemctl stop haproxy
6、將node4上的lvs規則清掉。因為lvs規則將由keepalived配置文件指定。
[root@node4 ~]# ipvsadm -D -t 192.168.4.100:80
7、在node5上安裝ipvsadm
[root@node5 ~]# yum install -y ipvsadm
8、在node4/5安裝keeaplived
[root@node4 ~]# yum install -y keepalived
9、在node4上配置keepalived
[root@node4 ~]# vim /etc/keepalived/keepalived.conf
global_defs {
notification_email {
root@localhost # 收件人
}
notification_email_from [email protected] # 發件人
smtp_server 127.0.0.1 # 郵件服務器地址
smtp_connect_timeout 30
router_id LVS_DEVEL
vrrp_skip_check_adv_addr
# vrrp_strict
vrrp_garp_interval 0
vrrp_gna_interval 0
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.4.100
}
}
virtual_server 192.168.4.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP

real_server 192.168.4.2 80 {
    weight 1

TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.4.3 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
10、啟動服務驗證
[root@node4 ~]# systemctl restart keepalived.service

HaProxy代理,搭建高可用的web集群