千家信息网

nginx结合keepalived实现高可用的完整步骤

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,前言为了满足系统的高可用,一般都需要搭建集群。当主机挂掉的时候,我们的系统还可以继续提供服务。当我们使用nginx作为反向代理和动静分离服务器的时候,也是如此。实现系统的高可用性,是我们程序员关注的重
千家信息网最后更新 2025年01月24日nginx结合keepalived实现高可用的完整步骤

前言

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

前提知识

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

keepalived的介绍

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

系统架构图

实现步骤

1.环境配置

1.1 安装nginx

安装相关依赖

yum install pcre-devel zlib zlib-devel openssl openssl-devel

上传解压压缩包

tar zxvf nginx-1.12.2.tar.gz

创建目录,检测配置

mkdir -p /usr/local/nginx./configure --prefix=/usr/local/nginx

预编译和安装

make && make install

启动、停止相关命令

cd /usr/local/nginx/sbin/./nginx./nginx -s stop./nginx -s start

1.2 安装keepalived

yum install -y keepalived

2.主机配置

修改keepalived配置文件

vim /etc/keepalived/keepalived.conf

修改的内容如下

#新增的配置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 }}

创建编写脚本文件

mkdir /shell/nginx_check.shvim /shell/nginx_check.sh

脚本文件内容如下

#!/bin/bashA=`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  fifi

3.从机配置

修改keepalived配置文件

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.启动服务

启动

service keepalived start

查看虚拟IP地址

ip addr1: lo:  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 forever2: eth0:  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.关闭防火墙测试

关闭防火墙

service iptables stop#查看防火墙是否开机自启动chkconfig --list | grep iptableschkconfig iptables off

登陆虚拟IP地址查看

http://192.168.126.88/

总结

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

0