RHCS+Nginx实现集群负载均衡

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冲突。

资料:

RHCS集群套件简介

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值