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,成功访问小米网站
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测试条件常见的值有以下四类: