一、简述
二、对httpd做高可用集群
1.环境说明
我们通过192.168.1.210对外提供web服务,两个客户端的ip地址分别为192.168.1.200和192.168.1.201,在192.168.1.202上提供了nfs服务为两台web服务器提供共享存储
2.前期准备工作
由于heartbeat是基于主机名通信的,需要对两台服务器配置主机名,并能够对实现主机名的解析
1
2
3
|
在/etc/hosts文件中添加如下行
192.168
.
1
.201node2.wangfeng7399.com node2
192.168
.
1
.200node1.wangfeng7399.com node1
|
为了实验的方便性,本处我们基于ssh的密钥认证,实现两台主机登陆不需要密码
1
2
3
|
[root@node1 ~]# ssh-keygen
[root@node1 ~]# ssh-copy-id root@node2
在node2上同样使用以上命令生成sshkey
|
3.在node1和node2上分别准备httpd,本处可以通过yum安装也可以通过编译源码安装,关于安装过程,本处不在累赘,如想了解过程,其移步至本人的博客http://wangfeng7399.blog.51cto.com/3518031/1379373
4.时间同步,本处使用的互联网的时间服务器,也可以自建时间服务器,关于如何自建时间服务器,将会在后续推出,敬请期待
1
|
[root@node1 ha]# ntpdate time.windows.com
|
查看两边的服务器时间是否同步
1
2
3
|
[root@node1 ha]# ssh node2
'date'
;date
Thu Apr
1722
:
05
:42CST
2014
Thu Apr
1722
:
05
:42CST
2014
|
5.安装heartbeat
①.解决依赖关系,由于centos6.5提供的为heartbeatV3版本,本处不能直接通过yum安装
1
|
yum install perl-TimeDate PyXML libnet net-snmp-libs -y
|
说明:libnet包在eprl源中,请确保安装epel源
②.安装heartbeatV2版本的rpm包
1
|
[root@node1 ha]# rpm -ivh heartbeat-
2.1
.
4
-
12
.el6.x86_64.rpm heartbeat-pils-
2.1
.
4
-
12
.el6.x86_64.rpm heartbeat-stonith-
2.1
.
4
-
12
.el6.x86_64.rpm heartbeat-gui-
2.1
.
4
-
12
.el6.x86_64.rpm
|
6.配置heartbeat
①.准备配置文件
1
2
|
[root@node1 ha.d]# cd /usr/share/doc/heartbeat-
2.1
.
4
/
[root@node1 heartbeat-
2.1
.
4
]# cp ha.cf authkeys /etc/ha.d/
|
②.修改配置文件
1
2
3
4
5
6
7
|
编辑authkey文件
auth
2
#
1
crc
2
sha1 HI!hajsbdja2189wqjke
#
3
md5 Hello!
[root@node1 ha.d]# chmod
600
authkeys
修改认证文件的权限
|
修改ha.cf文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
对ha.cf详解
#debugfile /
var
/log/ha-debug 是否开启调试功能,已经调试功能的文件位置
logfile /
var
/log/ha-log 日志文件的保存位置
keepalive
1
每个多长时间发送一次心跳信息,默认单位为s,也支持以ms为单位
deadtime
10
在检测不到对方心跳,替换的时间
warntime
8
警告时间
initdead
120
启动heartbeat后多长时间开始检查心跳
udpport
694
基于那个端口检测心跳信息
crm on 以crm的模块开启
bcast eth0 # Linux linux广播的端口
mcast eth0
225.0
.
0.169410
多播的地址
ucast eth0
192.168
.
1.2
组播的地址
compression bz2 压缩传输算法 on 主节点启动是否自动切换回主节点
ping
192.168
.
1.253
仲裁设备,可以指向网关
#ping_group group1
10.10
.
10.25410
.
10.10
.
253
仲裁设备组
#debug 1debug的级别
compression_threshold
2
压缩的最低大小,单位为kb
node node1.wangfeng7399.com node节点,切记,本处不能使用ip地址
node node2.wangfeng7399.com node节点,切记,本处不能使用ip地址
|
7.为用户hacluster创建密码,在安装heartbeat-gui时,会自动安装此用户
1
|
[root@node1 ha]# passwd hacluster
|
8.将配置好的文件复制一份到node2节点上
1
|
[root@node1 ha.d]# scp ha.cf authkeys node2:/etc/ha.d/
|
9.准备nfs服务器,并使apache用户对其有读写执行的权限,并准备主页
1
2
3
|
[root@localhost ~]# vi /etc/exports
/www/html
192.168
.
1.0
/
24
(rw)
[root@localhost ~]# setfacl -m u:apache:rwx /www/html/
|
10.通过图形界面配置相关信息
1
|
[root@node1 ha.d]# hb_gui &
|
11.配置过程
12.测试
可以看到我们实现了高可用的效果
切记:1.一定要注意添加顺序,顺序很重要,一定不要把顺序弄乱
2.httpd和nfs一定不能开机自启动
本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1397530,如需转载请自行联系原作者