nginx+keepalived主从高可用配置

上面有4台web服务器 我们实验条件限制,就开两台web服务器1.117 1.119
一、环境准备:
系统环境:CentOS 6.5 x86_64
Nginx版本:nginx v1.6.2
Keepalived版本:keepalived v1.2.1
Nginx-1:192.168.1.116 (Master)
Nginx-2:192.168.1.118 (Backup)
我这里也是根据前面lnamp实验的基础环境,192.168.1.116nginx里面配置负载均衡是192.168.1.117 / 192.168.1.119 的php网站,
数据库还是192.168.1.18 和192.168.1.19 所以说每个实验按照顺序来 可以节约很多时间,若果没有环境 就自己快速搭建一个lnamp环境或者用tomcat也行。
我这里是克隆了192.168.1.116 (克隆如何修改ip自己学习)
Ip为192.168.1.118 里面配置环境和1.116的一样都是nginx服务器
也就说两个nginx服务器都可以负载均衡192.168.1.117和1.119的网站
把Windows hosts文件上把1.118也加上去 同时把1.116注释掉 也能访问网站

如果把上面两个dns解析都打开 他只会访问1.116 即使1.116挂了也不会访问1.118 域名一样它会优先匹配第一个ip


以上两个图片可以说明1.118克隆的nginx服务启动后可以访问的,这里就有一个问题如果1.116的nginx挂了,dns是不会自动解析1.118的网站因为他们的域名一样,优先访问第一个ip ,同时也就访问不了 ,下面我们就用keepalived来决绝这个问题。
Keepalived安装配置:
wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz(两台数据库都要安装) 防火墙和selinux都关掉
tar zxf keepalived-1.2.1.tar.gz
cd keepalived-1.2.1 &&./configure --with-kernel-dir=/usr/src/kernels/2.6.18-164.el5-i686(这里写的是自己机器的内内核 这里记住如果内核Tab不出来, 那么我们就安装内核扩展包 yum –y install kernel kernel-devel)
(这里编译出错 就安装yum -y install popt-devel)

make && make install
DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ && mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/
两台nginx服务器keepalived安装步骤一样:
Nginx、Keepalived软件安装完毕,接下来进行详细配置。
两台服务器端keepalived.conf内容都为如下,都设置为backup,不抢占,注意修改备用机优先级不同:
! Configuration File for keepalived
global_defs {
notification_email {
wgkgood@.com
}
notification_email_from wgkgood@.com
smtp_server 127.0.0.1
smtp_connect_timeout
router_id LVS_DEVEL
}
vrrp_script chk_nginx {
script "/data/sh/check_nginx.sh"
interval
weight
}
# VIP1
vrrp_instance VI_1 {
state BACKUP
interface eth0
lvs_sync_daemon_inteface eth0
virtual_router_id
priority
advert_int
nopreempt
authentication {
auth_typePASS
auth_pass
}
virtual_ipaddress {
192.168.1.188
}
track_script {
chk_nginx
}
}
如上配置,我们需要自己建立check_nginx脚本,以方便检查本地Nginx是否存活更好的切换。Check_nginx.sh脚本内容如下:(两台一样)
#!/bin/bash
#auto check nginx process
#-- wugk
killall - nginx
if
[[ $? -ne ]];then
/etc/init.d/keepalived stop
fi





这里 记住 在同一网段内配置多个keepalived服务 virtual_router_id 值不能相同,如果相同会在messages中收到VRRP错误包 这里比如我们在mysql +keepalived 上面的virtual_router_id =151 那么我们在nginx+keepalived上的virtual_router_id就不能等于151了

下面我们把hosts文件里面的dns解析换成1.188 (windows机器上的)

这里能访问就说明你配置成功了

接下来在另一台nginx服务商配置keepalived 安装步骤一样 唯一就是配置文件里面优先级改一改 改为 90 要比master nginx低一些

配置到这一步就完成了 那么下面我们就测试 vip会不会飘逸 也就是说其中一台nginx挂了 vip会不会自动飘到另一台nginx服务器


这时我们发现vip 已经飘到1.118这台nginx服务器了

同样网站还是好的

这时你在主nginx的nginx服务起来 keepalived也起来 再把1.118的nginx服务停掉 它会自动跑到主nginx1.116上




nginx+keepalived主从高可用配置的更多相关文章
- Nginx系列二:(Nginx Rewrite 规则、Nginx 防盗链、Nginx 动静分离、Nginx+keepalived 实现高可用)
一.Nginx Rewrite 规则 1. Nginx rewrite规则 Rewrite规则含义就是某个URL重写成特定的URL(类似于Redirect),从某种意义上说为了美观或者对搜索引擎友好, ...
- Nginx keepalived实现高可用负载均衡详细配置步骤
Keepalived是一个免费开源的,用C编写的类似于layer3, 4 & 7交换机制软件,具备我们平时说的第3层.第4层和第7层交换机的功能.主要提供loadbalancing(负载均衡) ...
- 实现基于Keepalived主从高可用集群网站架构
背景 上一期我们实现了基于lvs负载均衡集群的电商网站架构,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,目前业务已经通过集群LVS架构可做到随时拓展 ...
- 架构设计:负载均衡层设计方案(6)——Nginx + Keepalived构建高可用的负载层
1.概述 前两遍文章中,我们一直在说后文要介绍Nginx + Keepalived的搭建方式.这篇文章开始,我们就来兑现前文的承诺,后续的两篇文章我们将介绍Nginx + Keepalived和 LV ...
- nginx内置高可用配置与第三方高可用模块nginx_ustream_check_mudule配置
1. nginx 第三方高可用模块 IP 备注 10.0.0.63 proxy 10.0.0.64 web1 10.0.0.65 web2 这里会讲解一些nignx常用高可用方案,以及引入第三方高可用 ...
- Keepalived+Nginx搭建主从高可用并带nginx检测
应用环境:部分时候,WEB访问量一般,或者测试使用,利用Keepalived给Nginx做高可用即可满足要求. 测试环境: 搭建步骤: 1. 安装软件 在Nginx-A和Nginx-B上: ~]# ...
- 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,保证我们的服务器都处在一个内网环境),由 ...
随机推荐
- sphinx和coreseek
sphinx是国外的一款搜索软件. coreseek是在sphinx的基础上,增加了中文分词功能,换句话说,就是支持了中文. Coreseek发布了3.2.14版本和4.1版本,其中的3.2.14版本 ...
- css选择器:first-child与:first-of-type的区别
:first-child选择器是css2中定义的选择器,从字面意思上来看也很好理解,就是第一个子元素.比如有段代码: <div> <p>第一个子元素</p> < ...
- Bzoj 1566: [NOI2009]管道取珠(DP)
1566: [NOI2009]管道取珠 Time Limit: 20 Sec Memory Limit: 650 MB Submit: 1558 Solved: 890 [Submit][Status ...
- Web前端-JavaScript基础教程下
Web前端-JavaScript基础教程下 <script>有6个属性: async对外部脚本有效,可以用来异步操作,下载东西,不妨碍其他操作. charset为src属性指定字符集. d ...
- codeforces396C
On Changing Tree CodeForces - 396C You are given a rooted tree consisting of n vertices numbered fro ...
- 【2018.08.01】(表/栈/队列/大小顶堆)学习Stark和Queue算法小记
Train Problem I As the new term comes, the Ignatius Train Station is very busy nowadays. A lot of st ...
- mysql数据库单独移动位置
在新版本中.sym方式已不再支持,最新的方式是使用软链接方式(Windows),官方文档:https://dev.mysql.com/doc/refman/5.7/en/windows-symboli ...
- [RK3399] Type-C改为MicroUSB
CPU:RK3399 系统:Android 7.1.2 为了降低成本,主板将 Type-C 改为 MicroUSB 接口,节省了 fusb302芯片 参考 Rockchip 的官方文档第4部分:Mic ...
- LINUX增加SWAP分区---install_oracle
我们都知道在安装Linux系统时在分区时可以分配swap分区,而系统安装后(在运行中)如何建立或调整swap分区呢?在装完Linux系统之后,建立Swap分区有两种方法.1.新建磁盘分区作为swap分 ...
- vue——vuex安装及使用
一.vuex 的理解 官方解释:vuex是一个专为vue.js应用程序开发的状态管理模式.采用集中式存储管理应用的所有的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 我的理解:全局变量,同 ...