nginx+keepalived实现高可用
参看文献 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实现高可用的更多相关文章
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层
1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...
- Nginx keepalived实现高可用负载均衡详细配置步骤
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...
- Nginx+Keepalived实现高可用站点
Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat. corosync.pacemaker.但是它一般不会单独出现,而是与 ...
- 使用Nginx+Keepalived组建高可用负载平衡Web server集群
一,首先说明一下网络拓扑结构: 1,Nginx 反向代理Server(HA): ①Nginx master:192.168.1.157 ②Nginx backup:192.168.1. ...
- Centos7.2下基于Nginx+Keepalived搭建高可用负载均衡(一.基于Keepalived搭建HA体系)
说明 本文只为方便日后查阅,不对一些概念再做赘述,网上都有很多明确的解释,也请大家先了解相关概念. 两台搭建HA的服务器是华为云上的ECS(不要忘记开通VPC,保证我们的服务器都处在一个内网环境),由 ...
- Nginx+Keepalived 实现高可用
Keepalived 是一个高性能的 服务器高可用 或 热备解决方案,Keepalived主要来防止服务器单点故障的问题,可以通过其与Nginx的配合来实现web服务端的高可用. Keepalived ...
- 实战| Nginx+keepalived 实现高可用集群
一个执着于技术的公众号 前言 今天通过两个实战案例,带大家理解Nginx+keepalived 如何实现高可用集群,在学习新知识之前您可以选择性复习之前的知识点: 给小白的 Nginx 10分钟入门指 ...
- 【nginx+keepalived】nginx+keepalived搭建高可用
一.结构及环境 1.1 环境介绍 操作系统:centos7 nginx+keepalived:106.53.73.200 master nginx+keepalived:182.254.184.102 ...
- nginx+keepalived主从高可用配置
上面有4台web服务器 我们实验条件限制,就开两台web服务器1.117 1.119 一.环境准备: 系统环境:CentOS 6.5 x86_64 Nginx版本:nginx v1.6.2 Kee ...
随机推荐
- Executors创建线程池的几种方式以及使用
Java通过Executors提供四种线程池,分别为: 1.newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程. ...
- Codeforces 1100 F - Ivan and Burgers
F - Ivan and Burgers 思路:线性基+贪心,保存线性基中每一位的最后一个 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #p ...
- mac 安装工具列表
1,jdk idea datagrip 2,maven download 3.1idea config maven 3.2 down load myql connector & datagr ...
- WPF InkCanvas 书写毛笔效果
https://www.cnblogs.com/younShieh/p/10602787.html
- Lab 9-2
Analyze the malware found in the file Lab09-02.exe using OllyDbg to answer the following questions. ...
- 脚本可执行,但无HTML测试报告文件生成,其造成的原因是在PyCharm的执行模式错误
定义测试报告两种写法: 1)测试报告直接在本地绝对路径下生成 # 导入HTMLTestRunner模块 import HTMLTestRunner # 通过open()方法以二进制写模式('wb')打 ...
- 【log4j】使用注意事项
实际过程中,使用log4j遇到的一些问题,进行总结: 1.log4j.properties文件的放置路径: 必须放在src的根目录下,这样就不需要额外的加载了 2.申明一个log对象 Logger l ...
- 显卡、GPU和CUDA简介
http://blog.csdn.net/wu_nan_nan/article/details/45603299 声明: 本文部分内容来自网络.由于知识有限,有错误的地方还请指正.本帖为自己学习过程的 ...
- Jmeter对HTTP请求压力测试、并发测试的简单使用方法
对于服务器性能测试这块的经验更是少得可以忽略.迫使不得不让我们去尝试了解测试的知识. 首先我们的需求场景如下: 服务器硬件:(只有一台) 系统:Windows 2003 WebServer:Tomca ...
- SQL的decode()函数
decode()函数简介: 主要作用:将查询结果翻译成其他值(即以其他形式表现出来,以下举例说明): 使用方法: Select decode(columnname,值1,翻译值1,值2,翻译值2,.. ...