小知识:nginx结合keepalived实现高可用的完整步骤

前言

为了满足系统的高可用,一般都需要搭建集群。当主机挂掉的时候,我们的系统还可以继续提供服务。当我们使用nginx作为反向代理和动静分离服务器的时候,也是如此。实现系统的高可用性,是我们程序员关注的重点。本文介绍了nginx结合keepalived实现主从模式搭建高可用集群。

前提知识

本文不作过多的nginx相关配置介绍,默认读者已经了解nginx的相关知识。

keepalived的介绍

Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中,这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。

系统架构图

%小知识:nginx结合keepalived实现高可用的完整步骤-猿站网-插图

实现步骤

1.环境配置

1.1 安装nginx

安装相关依赖

?
1
yum install pcre-devel zlib zlib-devel openssl openssl-devel

上传解压压缩包

?
1
tar zxvf nginx-1.12.2.tar.gz

创建目录,检测配置

?
1
2
mkdir -p /usr/local/nginx
./configure –prefix=/usr/local/nginx

预编译和安装

?
1
make && make install

启动、停止相关命令

?
1
2
3
4
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s start

1.2 安装keepalived

?
1
yum install -y keepalived

2.主机配置

修改keepalived配置文件

?
1
vim /etc/keepalived/keepalived.conf

修改的内容如下

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#新增的配置
vrrp_script chk_http_port {
script “/shell/nginx_check.sh” #脚本地址
interval 2 #检测脚本执行的间隔
weight 2 #比重
}
vrrp_instance VI_1 {
state MASTER #主服务器为MASTER,从服务器为BACKUP
interface eth0 #网卡
virtual_router_id 51 #主、备机的virtual_router_id必须相同
priority 100 #主、备机不同的优先级,主机优先级较大,备机值较小,默认是100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟IP地址
virtual_ipaddress {
192.168.126.88
}
}

创建编写脚本文件

?
1
2
mkdir /shell/nginx_check.sh
vim /shell/nginx_check.sh

脚本文件内容如下

?
1
2
3
4
5
6
7
8
9
#!/bin/bash
A=`ps -C nginx –no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx –no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi

3.从机配置

修改keepalived配置文件

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vrrp_instance VI_1 {
state BACKUP #主服务器为MASTER,从服务器为BACKUP
interface eth0 #网卡
virtual_router_id 51 #主、备机的virtual_router_id必须相同
priority 50 #主、备机不同的优先级,主机优先级较大,备机值较小
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
#虚拟IP地址
virtual_ipaddress {
192.168.126.88
}
}

4.启动服务

启动

?
1
service keepalived start

查看虚拟IP地址

?
1
2
3
4
5
6
7
8
9
10
11
12
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:4f:31:ce brd ff:ff:ff:ff:ff:ff
inet 192.168.126.100/24 brd 192.168.126.255 scope global eth0
inet 192.168.126.88/32 scope global eth0
inet6 fe80::20c:29ff:fe4f:31ce/64 scope link
valid_lft forever preferred_lft forever

5.关闭防火墙测试

关闭防火墙

?
1
2
3
4
service iptables stop
#查看防火墙是否开机自启动
chkconfig –list | grep iptables
chkconfig iptables off

登陆虚拟IP地址查看

?
1
http://192.168.126.88/

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。

原文链接:https://juejin.im/post/5df34f6d6fb9a0162b7f3423

声明: 猿站网有关资源均来自网络搜集与网友提供,任何涉及商业盈利目的的均不得使用,否则产生的一切后果将由您自己承担! 本平台资源仅供个人学习交流、测试使用 所有内容请在下载后24小时内删除,制止非法恶意传播,不对任何下载或转载者造成的危害负任何法律责任!也请大家支持、购置正版! 。本站一律禁止以任何方式发布或转载任何违法的相关信息访客发现请向站长举报,会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。本网站的资源部分来源于网络,如有侵权烦请发送邮件至:2697268773@qq.com进行处理。
建站知识

小知识:详解Centos/Linux下调整分区大小(以home和根分区为例)

2023-4-2 3:43:39

建站知识

小知识:Yum中报错:“pycurl.so: undefined symbol: CRYPTO_num_locks”的问题排查

2023-4-2 3:52:18

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索