Server1: node1 群管理节点 (安装:ricci luci nginx)
Server2: node2 (安装:ricci nginx)
一、RHCS配置
server1:
[root@server1 ~]# yum install ricci luci -y
[root@server1 ~]# /etc/init.d/luci start
[root@server1 ~]# /etc/init.d/ricci start
[root@server1 ~]# chkconfig luci on
[root@server1 ~]# chkconfig ricci on
[root@server1 ~]# passwd ricci
Changing password for user ricci.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
server2:
[root@server2 ~]# yum install ricci -y
[root@server2 ~]# /etc/init.d/ricci start
[root@server2 ~]# passwd ricci
Changing password for user ricci.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
访问https://172.25.18.1:8084 (luci默认端口为)进入图形管理集群
手动添加安全认证,使得浏览器可以访问。
输入Server1的root用户密码进入rhcs集群管理界面
进入高可用管理界面
创建集群步骤
1.添加节点
注意:需要在物理机上添加本地域名解析
2.添加Fence设备
[root@server1 haproxy]# blkid ##查看设备的UUID
/dev/block/253:0: UUID="2c5ae070-15e3-4cfa-8883-86c987734e54" TYPE="ext4"
[root@server2 ~]# blkid
/dev/vda1: UUID="b04a09f6-8eb2-492f-b330-546b9d1dcf3a" TYPE="ext4"
添加成功界面
查看集群信息,已添加成功
[root@server1 ~]# clustat
Cluster Status for cluster1 @ Wed Aug 1 23:12:28 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server1 1 Online, Local
server2 2 Offline
Failover Domain是配置集群的失败转移域,通过失败转移域可以将服务和资源的切换限制在指定的节点间,下面的操作将创建1个失败转移域。
- Prioritized:是否在Failover domain 中启用域成员优先级设置,这里选择启用。
- Restrict:表示是否在失败转移域成员中启用服务故障切换限制。这里选择启用。
- Not failback :表示在这个域中使用故障切回功能,也就是说,主节点故障时,备用节点会自动接管主节点服务和资源,当主节点恢复正常时,集群的服务和资源会从备用节点自动切换到主节点。
其中,“priority”设置为1的节点,优先级是最高的。
接下来要给集群添加服务资源。这里选择添加VIP和nginx服务。
从资源中添加服务组到集群:
二、配置Nginx
在server1和server2上安装nginx服务:(添加test.html作为测试)
[root@server2 mnt]# tar zxf nginx-1.14.0.tar.gz
[root@server2 nginx-1.14.0]# vim auto/cc/gcc
171 # debug
172 #CFLAGS="$CFLAGS -g"
[root@server2 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
[root@server2 nginx-1.14.0]# yum install pcre-devel openssl-devel gcc -y
[root@server2 nginx-1.14.0]# make
##make时的执行操作
[root@server2 nginx-1.14.0]# vim Makefile
default: build
clean:
rm -rf Makefile objs
build:
$(MAKE) -f objs/Makefile
install:
$(MAKE) -f objs/Makefile install
modules:
$(MAKE) -f objs/Makefile modules
upgrade:
/usr/local/nginx/sbin/nginx -t
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
sleep 1
test -f /usr/local/nginx/logs/nginx.pid.oldbin
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
[root@server2 nginx-1.14.0]# make install
[root@server2 nginx]# ln -s /usr/local/nginx/sbin/nginx /sbin/
##nginx相关命令
[root@server2 nginx]# nginx ##开启nginx
[root@server2 nginx]# nginx -s reload ##刷新配置
[root@server2 nginx]# nginx -t ##nginx测试配置文件
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
测试nginx轮询服务:
[root@server1 conf]# clustat ##把server1关闭后,server2的nginx启动并替代server1服务
Cluster Status for VIncent @ Wed Aug 1 18:26:49 2018
Member Status: Quorate
Member Name ID Status
------ ---- ---- ------
server2 1 Online, rgmanager
Server1 2 Online, Local, rgmanager
Service Name Owner (Last) State
------- ---- ----- ------ -----
service:nginx (server1) recoverable
##在物理机上添加本地解析
[root@18 ~]# echo "172.25.18.100 www.westos.com" >> /etc/hosts
[root@server2 html]# /etc/init.d/nginx reload
Reloading nginx: [ OK ]
[root@server2 html]# /etc/init.d/nginx stop
Stopping nginx: [ OK ]
写入nginx启动脚本
Cat /etc/init.d/nginx ## (server1,server2)
#!/bin/bash
#nx Startup script for the Nginx HTTP Server
# it is v.0.0.2 version.
# chkconfig: - 85 15
# description: Nginx is a high-performance web and proxy server.
# It has a lot of features, but it's not for everyone.
# processname: nginx
# pidfile: /var/run/nginx.pid
# config: /usr/local/nginx/conf/nginx.conf
nginxd=/usr/local/nginx/sbin/nginx
nginx_config=/usr/local/nginx/conf/nginx.conf
nginx_pid=/var/run/nginx.pid
RETVAL=0
prog="nginx"
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x $nginxd ] || exit 0
# Start nginx daemons functions.
start() {
if [ -e $nginx_pid ];then
echo "nginx already running...."
exit 1
fi
echo -n $"Starting $prog: "
daemon $nginxd -c ${nginx_config}
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
return $RETVAL
}
# Stop nginx daemons functions.
stop() {
echo -n $"Stopping $prog: "
killproc $nginxd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /var/run/nginx.pid
}
# reload nginx service functions.
reload() {
echo -n $"Reloading $prog: "
#kill -HUP `cat ${nginx_pid}`
killproc $nginxd -HUP
RETVAL=$?
echo
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
reload)
reload
;;
restart)
stop
start
;;
status)
status $prog
RETVAL=$?
;;
*)
echo $"Usage: $prog {start|stop|restart|reload|status|help}"
exit 1
esac
exit $RETVAL
实验中遇到的错误:
1.启动cman如出现错误:
Starting cman… xmlconfig cannot find /etc/cluster/cluster.conf [FAILED]
是因为节点还没有加入集群,没有产生配置文件/etc/cluster/cluster.conf
2.高可用管理页面卡顿。
在后端服务器误加VIP,使得访问时IP冲突。