老公做网站网站推广,wordpress响应速度太慢,网站后台用什么,网站左侧浮动代码目录 前言1 高可用性简介2 准备服务器和软件3 高可用的配置#xff08;主从配置#xff09;3.1 配置/etc/keepalived/keepalived.conf文件3.2 配置/usr/local/src/nginx_check.sh脚本文件 4 启动软件5 测试结语 前言
在现代互联网架构中#xff0c;高可用性是至关重要的。N… 目录 前言1 高可用性简介2 准备服务器和软件3 高可用的配置主从配置3.1 配置/etc/keepalived/keepalived.conf文件3.2 配置/usr/local/src/nginx_check.sh脚本文件 4 启动软件5 测试结语 前言
在现代互联网架构中高可用性是至关重要的。Nginx是一款高性能的Web服务器而Keepalived是一种在Linux系统上提供高可用性的解决方案。本文将介绍如何结合这两者构建一个高可用的Nginx集群确保系统在主服务器故障时能够无缝切换到备份服务器从而保证服务的连续性和稳定性。
1 高可用性简介
在当今计算机系统中高可用性是一项至关重要的特性。它代表着系统或组件在面对各种故障和异常情况时仍能够保持持续可用的能力。通过利用多台服务器和冗余组件构建高可用性架构旨在降低单点故障的风险确保系统能够持续稳定地运行。这种设计理念和实践对于确保用户体验和服务连续性至关重要特别是在对服务可靠性要求极高的应用场景下。 2 准备服务器和软件
两台Nginx服务器两个Tomcat服务器一个虚拟IP
在两台CentOS 7虚拟机服务器上安装Nginx并确保防火墙已开放默认的80端口。
安装Keepalived并检查安装情况
yum install keepalived -y
rpm -q -a keepalived3 高可用的配置主从配置
Keepalived的配置文件位于 /etc/keepalived/keepalived.conf。还需编写用于检测Nginx的脚本文件 /usr/local/src/nginx_check.sh。
3.1 配置/etc/keepalived/keepalived.conf文件
global_defs {notification_email {acassenfirewall.locfailoverfirewall.locsysadminfirewall.loc}notification_email_from Alexandre.Cassenfirewall.locsmtp_server 192.168.17.129smtp_connect_timeout 30router_id LVS_DEVEL
}vrrp_script chk_http_port {script /usr/local/src/nginx_check.shinterval 2 #检测脚本执行的间隔weight 2
}vrrp_instance VI_1 {state BACKUP # 备份服务器上将 MASTER 改为 BACKUPinterface ens33 //网卡virtual_router_id 51 # 主、备机的 virtual_router_id 必须相同priority 100 # 主、备机取不同的优先级主机值较大备份机值较小advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.17.50 // VRRP H 虚拟地址}
}这份 Keepalived 的配置文件中包含了几个重要的部分 global_defs全局定义 notification_email 部分列出了故障通知邮件的接收地址。notification_email_from 指定了故障通知邮件的发件人地址。smtp_server 设置了用于发送邮件的 SMTP 服务器地址。smtp_connect_timeout 设置了与 SMTP 服务器建立连接的超时时间。router_id 给出了 Keepalived 路由器的标识。 vrrp_scriptVRRP 脚本 - chk_http_port 定义了一个 VRRP 脚本指定了用于检测 HTTP 端口可用性的脚本文件路径。 - interval 规定了检测脚本执行的时间间隔。 - weight 给出了脚本执行的权重。 vrrp_instanceVRRP 实例 - VI_1 是一个 VRRP 实例的名称。 - state 设置了该实例所在服务器的状态这里是备份状态。 - interface 指定了 VRRP 实例所在的网卡。 - virtual_router_id 用于唯一标识一个 VRRP 实例需要与其他节点相同。 - priority 规定了实例的优先级备份服务器的优先级一般设置为较小的值。 - advert_int 设置了 VRRP 广播间隔。 - authentication 部分指定了认证类型和密码。 - virtual_ipaddress 列出了虚拟 IP 地址这个地址会在主服务器故障时切换到备份服务器。
这个配置文件的作用是确保在主服务器发生故障时备份服务器能够接管并使用虚拟 IP 地址继续提供服务保证系统的高可用性。
3.2 配置/usr/local/src/nginx_check.sh脚本文件
#!/bin/bash
Aps -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这段 Bash 脚本的作用是检测 Nginx 进程是否在运行。脚本执行的步骤如下
使用 ps 命令检查是否有 Nginx 进程在运行并将结果赋值给变量 A。如果没有发现 Nginx 进程即 $A 等于 0则尝试启动 Nginx。给 Nginx 启动一定的时间2秒来确保它能够完全启动。再次检查是否成功启动了 Nginx如果仍然没有发现 Nginx 进程则执行 killall keepalived 命令强制关闭 Keepalived 服务。
总体来说这段脚本用于监测并确保 Nginx 进程的运行。如果发现 Nginx 进程不存在它会尝试重启 Nginx 并检查是否启动成功若依然无法启动则会强制关闭 Keepalived 服务。这样的脚本通常用于保证在 Nginx 出现故障时及时处理以维护系统的稳定性和可用性。
4 启动软件
在启动 Nginx 之前首先需要进入 Nginx 的安装目录通常位于 /usr/local/nginx/ 或者自定义的安装路径。接着运行 ./nginx 命令来启动 Nginx 服务。这个命令将启动 Nginx 并开始监听来自客户端的请求使其能够响应和处理网页访问等相关请求。
启动 Keepalived 的步骤可能涉及不同系统和发行版的差异一种通用的方式是使用 systemctl start keepalived.service 命令。这个命令会调用系统服务管理器如 Systemd启动 Keepalived 服务。Keepalived 在运行中负责监测系统状态并确保在主服务器故障时实现自动故障转移保证服务的高可用性。
这些步骤的正确执行能够确保 Nginx 和 Keepalived 正常运行并为系统提供了高可用性保障即使在出现主服务器故障时也能保持服务的连续性。
5 测试
当输入虚拟 IP 地址进行访问时若能够正常访问则表明虚拟 IP 地址的绑定是成功的。这种情况下系统会将请求定向到正在提供服务的服务器上。这种无缝切换保证了在主服务器故障时备份服务器可以接管并继续提供服务。
停止主服务器中的 Nginx 和 Keepalived 服务后再次使用虚拟 IP 地址进行访问。如果依然能够正常访问这表示备份服务器已经成功地接管了服务。在备份服务器上可以通过执行 ip a 命令查看网络接口信息其中会显示已绑定的虚拟 IP 地址确认备份服务器已经接管了虚拟 IP 地址并正在处理来自客户端的请求。
这种测试能够验证整个高可用性方案的有效性确保在主服务器出现故障时备份服务器能够顺利接管服务并保持系统的稳定运行。
结语
融合了 Nginx 和 Keepalived 的高可用解决方案为系统带来了强大的故障转移能力。这种架构不仅能够确保服务的连续性还能有效地应对单点故障。当主服务器遭遇问题时Keepalived 可以迅速地将流量转移到备份服务器实现了无缝的故障转移用户几乎感知不到服务中断的情况。这种高可用性解决方案不仅提高了系统的稳定性也为应对突发状况提供了可靠的应急措施。这种架构设计在保障持续性服务方面扮演着关键角色对于那些对服务可靠性要求极高的应用场景尤为重要。