1.部署实验环境
首先需要在server1和server2中配置好ricci,在server1中配置好luci。并且在高可用页面添加两个节点。【具体做法】
在server1和server2中安装nginx:
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1/
yum install gcc zlib zlib-devel openssl-devel -y #解决依赖性
./configure --prefix=/usr/local/nginx
make && make install
当看到Makefile和objs时说明安装成功
编写一个nginx的html文件:
vim /usr/local/nginx/html/index.html
2.编写nginx启动脚本
编写nginx启动脚本:
vim /etc/init.d/nginxd
脚本内容:
#!/bin/bash
. /etc/init.d/functions #加载系统函数库
path=/usr/local/nginx/sbin #设定nginx启动命令路径
function start() {
if [ `netstat -antlpe | grep nginx | wc -l` -eq 0 ] #如果等于0
then
$path/nginx #打开nginx
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
action "nginx is started" /bin/true
return $RETVAL
else
action "nginx is started" /bin/false
return $RETVAL
fi
else
echo "nginx is running"
return 0
fi
}
function stop() {
if [ `netstat -antlpe | grep nginx | wc -l` -ne 0 ] #如果不等于0
then
$path/nginx -s stop
RETVAL=$?
if [ $RETVAL -eq 0 ]
then
action "nginx is stoped" /bin/true
return $RETVAL
else
action "nginx is stoped" /bin/false
return $RETVAL
fi
else
echo "nginx is stoped"
return 0
fi
}
case "$1" in #通过特殊参数$1接收脚本参数的字符串
start)
start
;;
stop)
stop
;;
restart)
stop
sleep 1
start
;;
*)
echo $"usage: $0 {start | stop | restart}"
exit 1
esac
exit $RETVAL
给脚本添加执行权限:
chmod +x /etc/init.d/nginxd
测试:
/etc/init.d/nginxd start
发现如图所示的错误,查看端口:
netstat -antlp
发现80端口被apache服务占用,关闭apache:
再次测试:
- 注意:安装好nginx以后一定要测试它的启动脚本是否能够正常使用,nginx是否能够启动
3.配置高可用
step1 在页面中删除之前添加的httpd服务群和资源以及故障转移区:
(没有做过httpd服务高可用的忽略此步骤)
step2 添加故障转移域:
step3 添加资源:
step4 向集群中添加上一步添加的资源(IP Address 和script):
- 注意:先添加ip,再添加服务,一定不能改变顺序
- 添加成功后保存,刷新页面。(切忌不要手动开启nginx服务,会引起集群出错,将所有的事情交给集群去做 )
step5 测试是否配置成功:
4.测试高可用
clusvcadm -r nginxd -m server2 #将服务迁移到server2上
这样就实现了nginx的高可用。
注意:
1.保持两台主机同步,否则也会出错,若出现不同步所导致的错误时,建议重新打开两个虚拟机,保持同步
2.切忌不要手动开启nginx服务,会引起集群出错,将所有的事情交给集群去做
3.若不小心手动启动了服务,则执行:
clusvcadm -d nginx #禁用这个服务
clusvcadm -e nginx #重新起用这个服务