1. 安装haproxy,keepalived, httpd,3台机器一致。

yum install haproxy keepalived httpd -y

2. 修改httpd的默认页面. 在/var/www/error/noindex.html中修改,

<div class="content-middle">
<p>163:This page is

其实随便一个地方添加上服务的httpd的IP即可,并且修改httpd端口为8080. 测试页面: 20140818143109.jpg 3台机器都一样,页面分别展示不同的IP地址。

3. 修改163的haproxy.

backend app
balance roundrobin
server app1 172.17.44.163:8080 check
server app2 172.17.44.164:8080 check
server app3 172.17.44.164:8080 check

将IP和端口修改.

4. 启动163的haproxy。 访问,172.17.44.163.5000。多次刷新,可以看到前面类似的页面IP地址变化会有164,165.但是图片不会正常展示,因为我们没有配置图片的请求。

5.164.165都配置上haproxy,执行同163一样的操作。

6. keepalived的作用介绍

 keepalived可以创建出一个虚拟IP(vip,这里的V是virtual),可以heartbeat各个机器的服务

7.设置keepalived的虚拟IP

 在keepalived的配置路径/etc/keepalived/下配置
! Configuration File for keepalived

global_defs {
router_id NODE1
notification_email {
root@localhost
}
notification_email_from root@local host
smtp_server localhost
smtp_connect_timeout 30
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
172.17.44.170
}
}

这里我们设置的是163这台机器作为Master,他的优先级别是100,虚拟IP是172.17.44.170,将这个文件复制到164,165,修改state 为BACKUP,优先级为99或更低。

全部使用service keepalived start.

在/var/log/message查看日志。

在163查看IP地址是否获取到:

[root@ha1 keepalived]# ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:e6:aa:16 brd ff:ff:ff:ff:ff:ff
inet 172.17.44.163/24 brd 172.17.44.255 scope global eth0
inet 172.17.44.170/32 scope global eth0
inet6 fe80::20c:29ff:fee6:aa16/64 scope link
valid_lft forever preferred_lft forever
[root@ha1 keepalived]#

可以看到eth0还有一个IP是170.本地开发环境并且能ping通,表示MASTER的虚拟IP获取成功。 reboot163服务器,立刻重新ping,172.17.44.170,还是能通,因为该170IP已经被172.17.44.164接管。

8. 结合前面的haproxy,访问172.17.44.170:5000,可以看到现在这个服务已经有了高可用性(关闭任何一台机器,服务正常),高并发(多台服务器处理相同请求)的雏形了

Openstack的HA解决方案【haproxy和keepalived】的更多相关文章

  1. Openstack的HA解决方案【替换原有的dashboard】

    0. 进入到/etc/haproxy/conf.d/目录下 mv 015-horizon.cfg 150-timaiaas.cfg 将原有的dashboard的ha配置文件做为自己的配置文件. 1. ...

  2. Openstack的HA解决方案【mysql集群配置】

    使用mysql的galera做多主集群配置,galera的集群优势网络上面有对比,这里不在叙述. 1. 新建3台虚拟机(centos6.5) node1:172.17.44.163 node2:172 ...

  3. [HA]负载均衡:HAPROXY与KEEPALIVED强强联合

    第一步:更改系统控制配置文件,同意分配虚拟IP(VIP) /etc/sysctl.conf net.ipv4.ip_nonlocal_bind=1 <pre style="word-w ...

  4. 浅谈web应用的负载均衡、集群、高可用(HA)解决方案(转)

    1.熟悉几个组件 1.1.apache     —— 它是Apache软件基金会的一个开放源代码的跨平台的网页服务器,属于老牌的web服务器了,支持基于Ip或者域名的虚拟主机,支持代理服务器,支持安 ...

  5. HAProxy、Keepalived 在 Ocatvia 的应用实现与分析

    目录 文章目录 目录 Amphora 启动 keepalived 启动 haproxy 最后 Amphora 创建一个 loadbalancer 需要占用一到两台 Amphora Instance 作 ...

  6. openstack controller ha测试环境搭建记录(一)——操作系统准备

    为了初步了解openstack controller ha的工作原理,搭建测试环境进行学习. 在学习该方面知识时,当前采用的操作系统版本是centos 7.1 x64.首先在ESXi中建立2台用于测试 ...

  7. OpenStack Mitaka HA部署方案(随笔)

    [Toc] https://github.com/wanstack/AutoMitaka # 亲情奉献安装openstack HA脚本 使用python + shell,完成了基本的核心功能(纯二层的 ...

  8. 用HAProxy和KeepAlived构建高可用的反向代理

      用HAProxy和KeepAlived构建高可用的反向代理 用HAProxy和KeepAlived构建高可用的反向代理 前言对于访问量较大的网站来说,随着流量的增加单台服务器已经无法处理所有的请求 ...

  9. saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived

    saltstack自动化运维系列⑥SaltStack实践安装配置HAproxy的Keepalived 安装配置Keepalived 1.编写功能模块 #创建keepalived目录# mkdir -p ...

随机推荐

  1. LightOj1028 - Trailing Zeroes (I)---求因子个数

    题目链接:http://lightoj.com/volume_showproblem.php?problem=1028 题意:给你一个数 n (1<=n<=10^12), 然后我们可以把它 ...

  2. qt 打开串口 UI卡死

    imx6在qt中打开调试串口时,ui总是会卡死.调试串口已经被文件系统占用,而在qt的app中使用open函数却能够调用open函数,打开成功,造成ui卡死,并且调试串口也卡死.本文记录这个问题的解决 ...

  3. oracle 中的游标

    oracle 中的游标 通俗易懂的sql代码直接上! --简单的游标使用滴呀 --使用FOR OBJ IN OBJS LOOP ......END LOOP; DECLARE CURSOR C_JOB ...

  4. iOS 面试题及答案

    1.写一个NSString类的实现 + (id)initWithCString:(c*****t char *)nullTerminatedCString encoding:(NSStringEnco ...

  5. JQuery:JQuery删除元素

    JQuery:删除元素通过 jQuery,可以很容易地删除已有的 HTML 元素.删除元素/内容.如需删除元素和内容,一般可使用以下两个 jQuery 方法: remove() - 删除被选元素(及其 ...

  6. CLM

    https://github.com/TadasBaltrusaitis/CLM-framework

  7. Java 语句总结

    一.替代if语句x = a ? b:c; 等价:if (a){ x=b;}else{x=c;}二.页面展示二维数组 <s:iterator var="rt" value=&q ...

  8. Strawberry Perl CPAN Install Module 安装 Module 方法

    我在 Windows 上用的是 Strawberry Perl. 安装好 Strawberry Perl 之后, 打开 CMD, 输入 CPAN <Module_Name> 即可安装你想要 ...

  9. ios-通知简单示例

    通知是一种一对多的信息广播机制,一个应用程序同时只能有一个NSNotificationCenter(通知中心)对象,用来添加通知观察者或者说监听者,以及发送通知. 用的地方是:不同控制器的传值回调.d ...

  10. lua metatable 和 _index 实验

    lua metatable 和 _index 中文博客解释: http://www.cnblogs.com/simonw/archive/2007/01/17/622032.html metatabl ...