参看文献 https://blog.csdn.net/u012410733/article/details/57078407

nginx的安装,这里就不再讲了

这里使用了两台服务器

192.168.37.135 主

192.168.37.136 从

分别在两台服务器上安装keepalived

1.#安装 popt  
2.yum install openssl-devel  
3.  
4.cd /usr/local/software  
5.wget http://www.keepalived.org/software/keepalived-1.2.8.tar.gz   
6.tar -zxvf keepalived-1.2.8.tar.gz  -C /usr/local/
7.cd ../keepalived-1.2.8  
8../configure --prefix=/usr/local/keepalived --sysconf=/etc  
9.make && make install  
10.  
11.cp /usr/local/keepalived/sbin/keepalived  /bin/  
12.chkconfig --add keepalived  
13.#设置开机启动  
14.chkconfig keepalived on  
15.#启动keepalive服务  
16./etc/init.d/keepalived start   之后可以使用
service keepalived start|stop|restart

然后在主机上运行 vim /etc/keepalived/keepalived.conf 修改配置

! Configuration File for keepalived

global_defs {

   router_id 192.168.37.135
} vrrp_script check_nginx {
script "/root/nginx_check.sh"
interval 2
weight -20
} vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass bhz
} virtual_ipaddress {
192.168.37.110
} track_script {
check_nginx
} }

从机上运行 vim /etc/keepalived/keepalived.conf 修改配置

! Configuration File for keepalived

global_defs {

   router_id 192.168.37.136
} vrrp_script check_nginx {
script "/root/nginx_check.sh"
interval 2
weight -20
} vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass bhz
} virtual_ipaddress {
192.168.37.110
} track_script {
check_nginx
}
}

简单描述:主机的state是MASTER,从机的是BACKUP;interface是网卡,可以输入ip a 查看网卡信息 ;priority是权重,主机是100,从机是90,当检查心跳的时候,发现当前的nginx或keepalived停止了,权重值就减少20,这样的话就会比另一台服务器的权重小,这个规则可以自定义;

在root目录先新建心跳脚本 nginx_check.sh

#!/bin/sh

A=`ps -C nginx --no-header |wc -l`
echo 'hello'
if [ $A -eq 0 ]
then
killall keepalived
fi

注释:ps -C nginx --no-header |wc -l 这句是获取正在运行的nginx服务的个数

若是使用上面这个脚本的话必须先启动nginx,再启动keepalived,因为如果没有先启动nginx的话,执行这个脚本发现没有启动nginx直接就把keepalived进程杀死了

配置已经完成了,启动两台服务器的nginx     /usr/local/nginx/sbin/nginx  这个是我的nginx的启动目录

启动两台服务器的keepalived  service keepalived start

输入虚拟ip



这个时候访问到的是主机的nginx;而且在主机输入 ip a时,可以看到有虚拟的ip地址,而查看从机时是没有虚拟ip的

这里我测试的时候发现一个奇怪的问题,直接停止nginx服务的话,再次访问虚拟ip 的话就访问不了了,只有先停止keepalived服务再停止nginx服务有效果
将主机的keepalived服务停止 service keepalived stop
将主机的nginx 服务停止 /usr/local/nginx/sbin/nginx -s stop 再次输入ip a查看ip

再次访问虚拟地址

发现访问到的是从机的nginx

现在又重新启动主机的nginx和keepalived服务
/usr/local/nginx/sbin/nginx
service keepalived
start 再次访问虚拟ip
正式环境的心跳脚本:
#!/bin/sh

A=`ps -C nginx --no-header |wc -l`

if [ $A -eq 0 ]
then
/usr/local/nginx/sbin/nginx //重启nginx,若nginx启动失败则停止keepalived
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ]
then
killall keepalived
fi
fi
#!/bin/sh

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

若使用的是上面的心跳脚本,则可以只启动keepalived而不需要先启动nginx

nginx+keepalived实现高可用的更多相关文章

  1. Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)

    一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...

  2. 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层

    1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...

  3. Nginx keepalived实现高可用负载均衡详细配置步骤

    Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...

  4. Nginx+Keepalived实现高可用站点

    Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat. corosync.pacemaker.但是它一般不会单独出现,而是与 ...

  5. 使用Nginx+Keepalived组建高可用负载平衡Web server集群

    一,首先说明一下网络拓扑结构: 1,Nginx 反向代理Server(HA):     ①Nginx master:192.168.1.157     ②Nginx backup:192.168.1. ...

  6. Centos7.2下基于Nginx+Keepalived搭建高可用负载均衡(一.基于Keepalived搭建HA体系)

    说明 本文只为方便日后查阅,不对一些概念再做赘述,网上都有很多明确的解释,也请大家先了解相关概念. 两台搭建HA的服务器是华为云上的ECS(不要忘记开通VPC,保证我们的服务器都处在一个内网环境),由 ...

  7. Nginx+Keepalived 实现高可用

    Keepalived 是一个高性能的 服务器高可用 或 热备解决方案,Keepalived主要来防止服务器单点故障的问题,可以通过其与Nginx的配合来实现web服务端的高可用. Keepalived ...

  8. 实战| Nginx+keepalived 实现高可用集群

    一个执着于技术的公众号 前言 今天通过两个实战案例,带大家理解Nginx+keepalived 如何实现高可用集群,在学习新知识之前您可以选择性复习之前的知识点: 给小白的 Nginx 10分钟入门指 ...

  9. 【nginx+keepalived】nginx+keepalived搭建高可用

    一.结构及环境 1.1 环境介绍 操作系统:centos7 nginx+keepalived:106.53.73.200 master nginx+keepalived:182.254.184.102 ...

  10. nginx+keepalived主从高可用配置

    上面有4台web服务器  我们实验条件限制,就开两台web服务器1.117  1.119 一.环境准备: 系统环境:CentOS 6.5 x86_64 Nginx版本:nginx v1.6.2 Kee ...

随机推荐

  1. 批处理学习之Bat命令——获取当前盘符、当前目录、上级目录

    命令 当前盘符:%~d0 当前路径:%cd% 当前执行命令行:%0 当前bat文件路径:%~dp0 当前bat文件短路径:%~sdp0 测试 下载testBatPath.bat测试文件,双击.bat运 ...

  2. Python入门 序列章

    内置函数range range([start,] stop[, step]) 第一个参数表示步长(默认为0),第二个参数表示终止值(结果中不包括这个值),第三个参数表示步长(默认为1, 实验发现不能用 ...

  3. CSS【03】:CSS 基础选择器与三种引入方式

    基础选择器 选择器:css 选择 html 标签的一个工具,是将 css 与 html 建立起联系,那么 css 就可以控制 html 样式 选择器其实就是给 html 标签起名字 标签选择器 作用: ...

  4. Mac OS X 清除DNS缓存

    参考: Flushing your DNS cache in Mac OS X and Linux Mac OS X 清除DNS缓存 根据Mac OS X操作系统的版本选择以下命令: Mac OS X ...

  5. U3D外包公司—北京动点(公司性质)承接U3D、Kinect、VR虚拟现实,增强现实,体感互动,大屏互动等各类外包

    unity3d外包就找动点软件承接虚拟现实项目外包 承接U3D.Kinect.VR虚拟现实,增强现实,体感互动,大屏互动等各类外包 联系请加QQ:372900288 联系电话:13911652504 ...

  6. Jade入门学习笔记

    jade是超高性能的node JavaScript模板引擎,有着非常强大的API和大量杰出的特性.它主要针对node的服务端.由于商标的原因,改为Pug,哈巴狗.Pug有它本身的缺点--可移植性差,调 ...

  7. 调研IOS的开发环境的发展演变

    一. 关于IOS的开发发展历史: 百度一下,关于这方面的详细资料有很多,在这里就不复制粘贴占用篇幅了. 二. 关于个人搭建IOS开发环境的体验: 本人用的是华硕电脑,window7的操作系统,本来为了 ...

  8. Angular 学习笔记 (久久没有写 angular 常会忘记的小细节)

    由于经常跑去写后端, 而且一些就几个月...很多 ng 的东西就忘掉了. 写在这里方便复习呗. 1. async pipe 没有 resolve 前返回的值是 null 2 view componen ...

  9. vs2010下使用sqlite

    1.SQLite安装SQlite官网:http://www.sqlite.org/download.html 找到以下截图中内容 第一个解压之后是sqlite3.exe,第二个解压之后是sqlite3 ...

  10. GSEA - Gene set enrichment analysis 基因集富集 | ORA - Over-Representation Analysis 分析原理与应用

    RNA-seq是利器,大部分做实验的老板手下都有大量转录组数据,所以RNA-seq的分析需求应该是很大的(大部分的生信从业人员应该都差不多要沾边吧). 普通的转录组套路并不多,差异表达基因.富集分析. ...