KeepAlived+Nginx实现高可用负载
一、环境及安装版本:
centos6.5、Nginx1.4.7、keepalived1.3.2
虚拟IP |
真是IP |
Nginx端口 |
主从分配 |
10.0.90.215 |
10.0.90.217 |
80 |
MASTER |
10.0.90.215 |
10.0.90.218 |
80 |
BACKUP |
二、Nginx安装
分别在10.0.90.217、10.0.90.218两台机器安装Nginx
1、 安装Nginx所需要的安装包
# yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel
2、 上传Nginx(nginx-1.4.7.tar.gz)到/usr/local/src目录
3、 编译安装Nginx
进入Nginx上传目录
# cd /usr/local/nginx
解压安装包
# tar –zxvf nginx-1.4..tar.gz
进入解压后的文件夹
# cd nginx-1.4.
指定编译位置
# ./configure --prefix=/usr/local/nginx
编译安装
# make && make install
4、 配置Nginx
通过修改/conf/nginx.conf文件来修改Nginx的配置信息
# vim /usr/local/nginx/conf/nginx.conf
5、 系统防火墙中打开对应的端口80(默认80)或者关闭防火墙
# vim /etc/sysconfig/iptables
添加:
## nginx -A INPUT -m state --state NEW -m tcp -p tcp --dport -j ACCEPT
添加后重启防火墙:
# service iptables restart
或者不做第5步上述配置直接关闭防火墙(不推荐)
# service iptables stop
6、 启动nginx
# /usr/local/nginx/sbin/nginx
检查是否启动成功
浏览器访问Nginx所在机器真实IP,如下显示即为成功
查看Nginx进程 # ps -ef|grep nginx 停止Nginx # /usr/local/nginx/sbin/nginx -s stop 重启Nginx # /usr/local/nginx/sbin/nginx -s reload
三、Keepalived安装(分别在10.0.90.217和10.0.90.218两台机器安装)
1、 上传或下载 keepalived(keepalived-1.3.2.tar.gz)到 /usr/local/src 目录
2、 解压安装
# cd /usr/local/src/ # tar -zxvf keepalived-1.3.2.tar.gz # ./configure --prefix=/usr/local/keepalived # make && make install
3、 将keepalived安装成Linux系统服务
因为没有使用keepalived的默认路径安装(默认是/usr/local),安装完成后,需要手动复制默认的配置文件到默认路径
# mkdir /etc/keepalived # cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/ ## 下面这个拷贝有时会找不到文件或文件夹导致无法复制 # cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ (可能不会成功) ## 可用如下拷贝替代: # cp /usr/local/src/keepalived-1.3./keepalived/etc/init.d/keepalived /etc/init.d/ # 继续下面命令
# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ # ln -s /usr/local/sbin/keepalived /usr/sbin/ # ln -s /usr/local/keepalived/sbin/keepalived /sbin/
设置keepalived服务开机启动
# chkconfig keepalived on
4、修改keepalived配置文件
# vim /etc/keepalived/keepalived.conf
配置如下
! Configuration File for keepalived global_defs {
# keepalived 自带的邮件提醒需要开启 sendmail 服务。建议用独立的监控或第三方 SMTP
router_id server1 ## 标识本节点的字条串,通常为 hostname
}
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh" ## 检测 nginx 状态的脚本路径
interval ## 检测时间间隔
weight - ## 如果条件成立,权重-
}
vrrp_instance VI_1 {
state MASTER ## 主节点为 MASTER,对应的备份节点为 BACKUP
interface eth0 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同,我的是 eth0
virtual_router_id ## 虚拟路由的 ID 号,两个节点设置必须一样
mcast_src_ip 10.0.90.218 ## 本机 IP 地址
priority ## 节点优先级,值范围 -,MASTER 要比 BACKUP 高
advert_int ## 组播信息发送间隔,两个节点设置必须一样,默认 1s
authentication { ## 设置验证信息,两个节点必须一致
auth_type PASS
auth_pass
}
track_script {
chk_nginx ## 执行 Nginx 监控的服务
}
virtual_ipaddress {
10.0.90.215 ## 虚拟 ip,可以定义多个
}
}
check_nginx.sh脚本代码如下:
#!/bin/bash
# curl -IL http://localhost/index.htm
count=
for (( k=; k<; k++ ))
do
check_code=$( curl --connect-timeout -sL -w "%{http_code}\\n" http://localhost/index.html -o /dev/null )
if [ "$check_code" != "" ]; then
count=$(expr $count + )
sleep
continue
else
count=
break
fi
done
if [ "$count" != "" ]; then
/etc/init.d/keepalived stop
# exit
else
exit
fi
5、最主要的一点,为check_nginx.sh增加可执行权限,否则准备不切换并且又不报错
# chmod +x /etc/check_nginx.sh
6、 修改Nginx主页增加本机IP,以便后面主备切换查看效果
# vim /usr/local/nginx/html/index.html
7、 启动keepalived(两台机器的keepalived均需要启动)
# service keepalived start
如下显示即为成功
在启动 keepalived: [确定]
8、 启动完成后在MASTER机器运行命令
# ip add
可以看到配置的虚拟ip 10.0.90.215飘到Master上
网页访问效果
9、 停止Master服务
# service keepalived stop
10、在BACKUP机器运行
# ip add
发现虚拟IP已经飘到BUCKUP机器
网页访问效果:
KeepAlived+nginx配置完成。
KeepAlived参数详情请参考:
KeepAlived+Nginx实现高可用负载的更多相关文章
- [转]搭建Keepalived+Nginx+Tomcat高可用负载均衡架构
[原文]https://www.toutiao.com/i6591714650205716996/ 一.概述 初期的互联网企业由于业务量较小,所以一般单机部署,实现单点访问即可满足业务的需求,这也是最 ...
- Keepalived+Nginx实现高可用负载均衡集群
一 环境介绍 1.操作系统CentOS Linux release 7.2.1511 (Core) 2.服务keepalived+nginx双主高可用负载均衡集群及LAMP应用keepalived-1 ...
- Keepalived + Nginx + Tomcat 高可用负载均衡架构
环境: 1.centos7.3 2.虚拟ip:192.168.217.200 3.192.168.217.11.192.168.217.12上分别部署Nginx Keepalived Tomcat并进 ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(一) 简介
一. 为什么这样构架 1. 系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,keepalived提供健康检查,故障转移,提高系统的可用性!采用 ...
- Linux巩固记录(9) keepalived+nginx搭建高可用负载分发环境
环境准备(继续服用hadoop节点) slave1 192.168.2.201(CentOs 7) slave2 192.168.2.202(CentOs 7) slave1 和 slave2 上 ...
- LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)
一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(三) Nginx
1. 安装 sudo apt-get install nginx 2. 配置nginx sudo gedit /etc/nginx/nginx.conf user www-data; worker_ ...
- lvs + keepalived + nginx + tomcat高可用负载反向代理服务器配置(二) LVS+Keepalived
一.安装ipvs sudo apt-get install ipvsadm 二.安装keepalived sudo apt-get install keepalived 三.创建keepalived. ...
- Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡
文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...
随机推荐
- JS将文件以form表单一样提交到后台
这是很简单.. HTML <div> <input type="file" id="myfile"> <input type=&q ...
- 虚拟硬盘格式vdi、vhd、vmdk相互转换
Windows7的引导程序能够引导vhd格式的虚拟硬盘,而VirtualBox创建的虚拟硬盘文件是vdi格式的,怎么办呢? 以前要借助其他软件才能实现,但是VirtualBox早就悄悄为我们带来了一个 ...
- 获取子物体数量---Transform.childCount
如何判断一个物体下是否有子物体?getchild(0)!=null?显然不可取 那去获取拿到子物体数量?transform.GetChildCount();可以解决 但在新版本中已被弃用,可用tran ...
- Java探秘之基本数据类型和包装类(int,Integer)(一)
最近闲来无聊打算做一个博客网,没事记记笔记什么,可是网站不好做,需要点时间,就先写写笔记来练练手. 可是要写什么呢,太难的好像我也写不出来,万一写错了误导别人就不好了. 哈哈,不多说,直奔主题,要是写 ...
- Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理
Android系统--输入系统(十四)Dispatcher线程情景分析_dispatch前处理 1. 回顾 我们知道Android输入系统是Reader线程通过驱动程序得到上报的输入事件,还要经过处理 ...
- 虚拟机配置静态IP地址
使用VMware配置虚拟机静态IP地址 一.安装好虚拟后在菜单栏选择编辑→ 虚拟网络编辑器,打开虚拟网络编辑器对话框,选择Vmnet8 Net网络连接方式,随意设置子网IP,点击NAT设置页面,查看子 ...
- WNMP(Windows + Nginx + PHP + MySQL) 安装
最近在开发一个新的项目,环境用的是: Nginx1.10.3 下载地址: http://nginx.org/en/download.html 下载windows版本包 PHP 7.1.1 下载地 ...
- hdu_3746: Cyclic Nacklace
题目链接 给出一个字符串,你可以通过在首尾加入字符使其变成一个具有周期T(T>=2)的字符串,求所需加入的最少字符数. 所考察算法仍然是对next数组含义的理解 #include<cstd ...
- 【NOIP模拟】matrix(简化矩阵)
题目背景 SOURCE:NOIP2016-RZZ-1 题目描述 给出两个 N×N 的矩阵 A.B,矩阵每行每列标号 0-N-1 .定义这两个矩阵的乘积 AB 为
- MySQL慢查询日志分析
一:查询slow log的状态,如示例代码所示,则slow log已经开启. mysql> show variables like '%slow%'; +-------------------- ...