基于Haproxy+Keepalived负载均衡高可用架构实现(2)

3、后端服务器配置好基于LNMP架构的web服务

三、修改配置文件: 1.修改/etc/keepalived/keepalived.conf配置文件内容 在haproxy-server-master上

vim /etc/keepalived/keepalived.conf global_defs { notification_email { root@localhost } notification_email_from root@mingming.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id keepalived_lvs } vrrp_instance VI_1 { state MASTER interface ens33 virtual_router_id 55 priority 100 advert_int 1 authentication { auth_type PASS auth_pass mingming } virtual_ipaddress { 172.17.253.100 } }

在haproxy-server-backup上

global_defs { notification_email { root@localhost } notification_email_from root@mingming.com smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id keepalived_lvs } vrrp_instance VI_1 { state BACKUP interface eth1 virtual_router_id 55 priority 98 advert_int 1 authentication { auth_type PASS auth_pass mingming } virtual_ipaddress { 172.17.253.100 } }

2.修改主haproxy配置文件主要是listen,frontend和backend段 在haproxy-server-master上

vim /etc/haproxy/haproxy.cfg

listsen段

listen stats bind 0.0.0.0:1080 stats enable stats uri /haproxyadmin stats auth admin:admin stats admin if TRUE

frontend段

frontend web bind *:80 default_backend lnmp-server

backend段

backend lnmp-server balance roundrobin option httpchk GET /index.html server webserver1 172.17.251.236:80 check inter 3000 rise 3 fall 5 server webserver1 172.17.251.237:80 check inter 3000 rise 3 fall 5

在haproxy-server-backup上和在haproxy-server-master上haproxy配置文件的配置是一样的

然后在haproxy-server-master上和在haproxy-server-backup上都开启keepalived和haproxy服务,会发现vip漂移到haproxy-server-backup上(因为haproxy-server-master上keepalived的配置文件中优先级高),而且haproxy-server-master和haproxy-server-backup上haproxy服务都监听了1080端口和80端口

四,检验高可用效果

1.客户端先访问一下vip,成功访问小米网站

基于Haproxy+Keepalived负载均衡高可用架构实现

2.在haproxy-server-master上停掉keepalived服务,会发现vip漂移到haproxy-server-backup上,客户端依旧能够访问vip,访问小米网站,实现了高可用

3.关闭后端一台服务器的web服务,观察haproxy健康状态监测

4.企业级应用

Haproxy访问控制ACL应用

haproxy的ACL用于实现基于请求报文的首部、响应报文的内容或其它的环境状态信息来做出转发决策,这大大增强了其配置弹性。其配置法则通常分为两步,首先去定义ACL,即定义一个测试条件,而后在条件得到满足时执行某特定的动作,如阻止请求或转发至某特定的后端。

定义ACL的语法格式如下: acl <aclname> <criterion> [flags] [operator] <value> ...

<aclname>:ACL名称,区分字符大小写,且其只能包含大小写字母、数字、-(连接线)、_(下划线)、.(点号)和:(冒号);haproxy中,acl可以重名,这可以把多个测试条件定义为一个共同的acl;

<criterion>:测试标准,即对什么信息发起测试;测试方式可以由[flags]指定的标志进行调整;而有些测试标准也可以需要为其在<value>之前指定一个操作符[operator];

[flags]:常见haproxy的acl支持的标志位有3个:

-i:不区分<value>中模式字符的大小写;

-f:从指定的文件中加载模式;

--:标志符的强制结束标记,在模式中的字符串像标记符时使用;

<value>:acl测试条件常见的值有以下四类:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/7ba5cc8030ad3fd865eee3f82c505b2b.html