高可用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.178linux.com/76104

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

相关推荐

  • CentOS7.3系统上编译安装httpd.2.4.25

    本文所做的所有操作是在一部新安装的CentOS7.3系统上。 1.环境与配置 环境说明:VMware上安装的CentOS7.3系统,7.3完整版光盘做成的yum源 配置:编译生成的所有的文件都存放在/usr/local/httpd24/这个目录下 2.安装GCC编译器 #安装Development tools这个软件包组 [root@pxe68 ~]# yu…

    2017-04-20
  • N21 第八周 总有刁民想害朕

    1、请描述网桥、集线器、二层交换机、三层交换机、路由器的功能、使用场景与区别。 网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安全性。 集线器的英文称为“Hub”。主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在以它为中心的节点上。它…

    Linux干货 2016-09-15
  • N25-第四周

    一、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     [root@localhost ~]# cp -r /etc/skel /home/tuser1      [root@localhost ~]# chmo…

    Linux干货 2017-01-09
  • 懒人本地YUM源设置

    一、挂载本地光盘到根目录下/media。 [root@wing-PC ~]# mount -v /dev/sr0 /media/ 二、用mv 修改/etc/yum.repos.d下面的文件。 [root@wing-PC ~]# mv -v /etc/yum.repos.d/CentOS-Base.repo / CentOS-Base.repo.bak [ro…

    系统运维 2017-08-05
  • RPM和YUM的使用说明

    一、RPM包管理程序 centos系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护 RPM包安装选项:   –test:测试安装,但不真正执行安装   –nodeps:忽略依赖关系   –nosignature:不检查来源合法性   –nodig…

    Linux干货 2016-08-24
  • 0803权限管理作业练习

    0803权限管理作业练习 题目:创建组sales,gid 3000,passwd :centos,sales 的组管理员admins:user2 将用户user1,user2,user3加入到sales辅助组 希望user1创建新文件默认的所属组为sales user2将用户user3从sales组移除   答案:   &nbs…

    Linux干货 2016-08-05