1.部署实验环境
首先需要在server1和server2中配置好ricci,在server1中配置好luci。并且在高可用页面添加两个节点。
具体做法在https://editor.csdn.net/md/?articleId=104462880这篇博客中,在这里就不在赘述。
在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
- 1
- 2
- 3
- 4
- 5
当看到Makefile和objs时说明安装成功
编写一个nginx的html文件:
vim /usr/local/nginx/html/index.html
- 1
2.编写nginx启动脚本
编写nginx启动脚本:
vim /etc/init.d/nginxd
- 1
脚本内容:
#!/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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
给脚本添加执行权限:
chmod +x /etc/init.d/nginxd
- 1
测试:
/etc/init.d/nginxd start
- 1
发现如图所示的错误,查看端口:
netstat -antlp
- 1
发现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上
- 1
这样就实现了nginx的高可用。
注意:
1.保持两台主机同步,否则也会出错,若出现不同步所导致的错误时,建议重新打开两个虚拟机,保持同步
2.切忌不要手动开启nginx服务,会引起集群出错,将所有的事情交给集群去做
3.若不小心手动启动了服务,则执行:
clusvcadm -d nginx #禁用这个服务
clusvcadm -e nginx #重新起用这个服务
- 1
- 2