这篇文章简单介绍利用keepalived软件,实现对nginx服务器的高可用,即实现故障自动切换。假设你已经安装好nginx,下面介绍keepalived的安装和使用。
keepalived安装
- yum install openssl-devel
- cd /tmp
- wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
- tar xzf keepalived-1.2.2.tar.gz
- cd keepalived-1.2.2
- ./configure
- make && make install
- cp /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/
- cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/
- chmod +x /etc/init.d/keepalived
- chkconfig --add keepalived
- chkconfig keepalived on
- mkdir /etc/keepalived
- ln -s /usr/local/sbin/keepalived /usr/sbin/
keepalived的配置
更详细的keepalived配置文件说明可以执行man keepalived.conf查看。
我们假设主服务器IP:192.168.1.103,从服务器ip:192.168.1.101 虚拟ip:192.168.1.110
下面对主服务器的keepalived进行配置:
- vi /etc/keepalived/keepalived.conf
- global_defs {
- notification_email {
- admin@centos.bz
- }
- notification_email_from keepalived@domain.com
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- vrrp_script chk_http_port {
- script "/opt/nginx_pid.sh"
- interval 2
- weight 2
- }
- vrrp_instance VI_1 {
- state MASTER ############ 辅机为 BACKUP
- interface eth0
- virtual_router_id 51
- mcast_src_ip 192.168.1.103
- priority 102 ########### 权值要比 back 高
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- track_script {
- chk_http_port ### 执行监控的服务
- }
- virtual_ipaddress {
- 192.168.1.110
- }
- }
从服务器:
- global_defs {
- notification_email {
- admin@centos.bz
- }
- notification_email_from keepalived@domain.com
- smtp_server 127.0.0.1
- smtp_connect_timeout 30
- router_id LVS_DEVEL
- }
- vrrp_script chk_http_port {
- script "/opt/nginx_pid.sh"
- interval 2
- weight 2
- }
- vrrp_instance VI_1 {
- state BACKUP
- interface eth0
- virtual_router_id 51
- mcast_src_ip 192.168.1.101
- priority 101 ##########权值 要比 master 低。。
- advert_int 1
- authentication {
- auth_type PASS
- auth_pass 1111
- }
- track_script {
- chk_http_port ### 执行监控的服务
- }
- virtual_ipaddress {
- 192.168.1.110
- }
- }
之后分别在主从服务器建立nginx的监控脚本:
- vi /opt/nginx_pid.sh
- #!/bin/bash
- A=`ps -C nginx --no-header |wc -l`
- if [ $A -eq 0 ];then
- /usr/local/nginx/sbin/nginx
- sleep 3
- if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
- killall keepalived
- fi
- fi
然后分别启动主从服务器的keepalived:
- service keepalived start
keepalived的测试
我们在主服务器上执行命令ip a,显示如下:
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:aa:a1:e4 brd ff:ff:ff:ff:ff:ff
- inet 192.168.1.103/24 brd 255.255.255.255 scope global eth0
- inet 192.168.1.110/32 scope global eth0
证明主服务器已经绑定了虚拟ip 192.168.1.110
在从服务器上执行命令ip a,显示如下:
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:2b:94:3b brd ff:ff:ff:ff:ff:ff
- inet 192.168.1.101/24 brd 255.255.255.255 scope global eth0
显示表明从服务器上没有绑定vip 192.168.1.110,只有本机真实ip192.168.1.101
下面我们停止主服务器的nginx进程,再看看ip绑定情况:
主服务器的情况:
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:aa:a1:e4 brd ff:ff:ff:ff:ff:ff
- inet 192.168.1.103/24 brd 255.255.255.255 scope global eth0
从服务器的情况:
- 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
- link/ether 00:0c:29:2b:94:3b brd ff:ff:ff:ff:ff:ff
- inet 192.168.1.101/24 brd 255.255.255.255 scope global eth0
- inet 192.168.1.110/32 scope global eth0
由此可见vip已经指向了从服务器。
参考:http://www.keepalived.org/pdf/UserGuide.pdf
相关推荐
在使用keepalived实现高可用性时,需要将nginx服务器的状态与keepalived集成。可以使用chk_http_port脚本来监控nginx服务器的状态,并在出现故障时自动切换到备份服务器。 四、优势 使用nginx和keepalived实现双机...
Nginx+keepalived双机热备(主从模式)是一种常见的负载均衡技术,用于实现高可用环境和故障转移。该技术通过将Nginx与keepalived结合,实现了前端负载均衡和高可用性。 Nginx是一款流行的开源Web服务器软件,具有...
本片详细记录了Nginx+keepalived双机热备(主从模式)高可用集群方案-完整部署过程,讲解十分到位,可作为线上实操手册。特在此分享,希望能帮助到有用到的朋友。
Keepalived 实现双机热备 Keepalived 是一个类似于 Layer3, 4, 5 交换机制的软件,也就是我们平时说的第 3 层...Keepalived 是一个功能强大且灵活的软件,可以实现双机热备,提高服务器的高可用性和自动故障转移能力。
通过配置Nginx、Keepalived和Tomcat,可以实现高可用、高性能的Web应用系统。 六、Nginx知识点 * Nginx是一个轻量级的Web服务器,支持反向代理、负载均衡和动静分离。 * Nginx的配置文件包括nginx.conf,用于配置...
nginx+keepalive 主从双机热备解决方案 nginx 是一种流行的开源 Web 服务器软件,keepalive 是一种心跳检测机制,用于检测...nginx+keepalive 主从双机热备解决方案是提高服务器高可用性和稳定性的一种有效解决方案。
在构建高性能、高可用性的Web服务时,使用Nginx+keepalived+tomcat的组合可以实现强大的负载均衡和故障转移功能。这个方案的核心思想是利用Nginx作为前端反向代理服务器,通过keepalived来确保服务的高可用性,并将...
redhat6.4+nginx+keepalived__实现双机热备和负载均衡
2. **安装 Keepalive**:通过源码编译安装 Keepalive 用于实现高可用性集群。 3. **安装 Nginx**:同样采用源码编译的方式安装 Nginx,这是集群中的主要负载均衡组件。 4. **配置 Keepalive**:编写和配置 `...
通过上述步骤,我们可以成功地实现一个基于Nginx的负载均衡系统,并利用Keepalived来实现双机热备,确保了系统的高可用性和稳定性。这种架构不仅能够有效分发流量至多个Web服务器,还能在一台服务器出现故障时自动...
"keepalived+nginx双机热备+负载均衡 非抢占模式"是一种高级的IT解决方案,用于构建高可用、高性能的Web服务环境。通过Keepalived的VRRP和非抢占模式,保证了服务的连续性;Nginx则提供了灵活的负载均衡策略;配合...
通过本文,读者将了解如何使用Nginx和keepalived来实现高可靠性的负载均衡架构,以提高网站的可用性和性能。 一、体系架构 在Keepalived+Nginx高可靠性负载均衡架构中,keepalived负责实现High-availability(HA)...
本文档旨在详细介绍如何在Linux环境下构建一套基于Keepalived、Nginx、Tomcat及MySQL的服务集群,实现双机热备与负载均衡功能。以下内容将详细阐述配置步骤,特别关注于数据库服务器(5号机)的配置流程。 #### ...
而Keepalived则是一个用于实现高可用性的网络服务,它基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议,可以保证在主服务器失效时自动将流量切换到备份服务器。 **一、Keepalived工作原理**...
在IT行业中,双机热备是一种常见的高可用性解决方案,用于确保关键...总的来说,Keepalived通过VRRP协议实现了双机热备,提供了高可用性和负载均衡的能力。通过合理的配置,可以有效地保护关键业务免受单点故障的影响。
Keepalived和nginx实现负载和双机热备原理 。
MySQL主主搭建与Keepalived实现双机热备是构建高可用数据库系统的关键技术,它确保了即使在一台服务器故障时,数据服务也能不间断运行。以下是对这一主题的详细解释: 1. **MySQL主主复制**: 主主复制是一种...