内容简介:Keepalived+Nginx搭建高可用负载均衡集群
前言
因生产环境需要,现需要搭建一个前端为Nginx的HA双向互备、后端为Nginx代理的loadbalance负载均衡集群。nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能。在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都由主进程发出,Slave(worker)进程所有的超时任务都会被Master中止,属于非阻塞式任务模型。Keepalived是 Linux 下面实现VRRP 备份路由的高可靠性运行件。基于Keepalived设计的服务模式能够真正做到主服务器和备份服务器故障时IP瞬间无缝交接。
此架构需考虑的问题
1)Master没挂,则Master占有vip且nginx运行在Master上
2)Master挂了,则backup抢占vip且在backup上运行nginx服务
3)如果master服务器上的nginx服务挂了,则vip资源转移到backup服务器上
4)检测后端服务器的健康状态
Master和Backup两边都开启nginx服务,无论Master还是Backup,当其中的一个keepalived服务停止后,vip都会漂移到keepalived服务还在的节点上,
如果要想使nginx服务挂了,vip也漂移到另一个节点,则必须用脚本或者在配置文件里面用 shell 命令来控制。
以下实验过程由难及易,易于上手,便于操作。
一、前期环境准备
1. 系统环境均为CentOS release 6.5 (Final)32位,均在虚拟机上成功实现。
所有的软件包均为yum方式安装,yum源均在用阿里云服务器所使用的。
为避免后续不必要的麻烦,全都关闭防火墙
本实验结构的拓扑图如下:
机器IP规划如下:
二、后端apache的安装配置
apache1:
1、安装
[root@apache1 ~]# yum install -y httpd
2、建立测试网页文件
echo "this is apache1" >/var/www/html/index.html
3、开启服务
service httpd start
apache2:
1、安装
yum -y install httpd
2、建立测试网页文件
echo "this is apache2" >/var/www/html/index.html
3、开启服务
service httpd start
Nginx安装与配置
1安装环境所需依赖包
yum -y install gcc gcc+ gcc-c++
yum install popt-devel opensslopenssl-devel libssl-dev libnl-devel popt-devel
yum install -y net-snmp.x86_64net-snmp-devel.x86_64
2.安装nginx
yum install -y nginx
3.修改nginx的配置文件
yum install -y nginx
创建自定义配置文件
mkdir /etc/nginx/conf.d/extra/
vim /etc/nginx/conf.d/extra/yang.conf
4.启动nginx
service nginx start
此时可以在浏览器测试一下,输入IP:192.168.1.135
刷新一下
这一台nginx已经配置成功,在另外一台机器上同样的方式配置nginx,这里不再赘述。
以上配置文件里的内容虽然稀少,但都是重要部分,以后用的到的功能逐渐添加。
keepalived的安装与配置
机器上安装keepalived
yum install -y keepalived
2.修改keepalived配置文件
vim/etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
yangry@linuxidc.com
}
notification_email_fromyangry@linuxidc.com
smtp_server mail.linuxidc.com
smtp_connect_timeout 30
router_id LVS_MASTER1 #
表示运行keepalived服务器的一个标识,发邮件时显示在邮件主题中的信息
}
vrrp_script chk_http_port {
script "/usr/local/keepalived/nginx.sh"####
检测nginx状态的脚本链接
interval 2
weight 2
}
vrrp_instance VI_2 { #vrrp
实例
stateMASTER #MASTER/BACKUP
interface eth1 ####HA
监测网络接口
virtual_router_id 51 #
虚拟路由标识,是一个数字,同一个VRRP实例使用唯一的标识,master和backup要一样
priority100 #
用于主从模式,优先级主高于100,从低于100
advert_int1 #
主备之间的通告间隔秒数
authentication{ #
认证用于主从模式,mater和backup配置一样
auth_type PASS ###
主备切换时的验证
auth_pass 1111 #
密码
}
track_script {
chk_http_port ###
执行监控的服务
}
virtual_ipaddress {
192.168.1.100 dev eth1 label eth1:0 ###########
虚拟ip
}
}
3.编写nginx检测脚本
vim /usr/local/keepalived/nginx.sh
if [ `ps -C nginx --no-header |wc -l` -eq 0];then
killall keepalived
fi
一定要记得赋予其可执行权限哦
chmod +x /usr/local/keepalived/nginx.sh
在另外一台backup机器上做同样操作,注意/etc/keepalived/keepalived.conf要修改的地方如下:
state BACKUP
priority 99(一定要比master的值要小)
手动添加一个虚拟IP
分别在master和backup上执行以下命令:
ifconfig eth1:0 192.168.1.100netmask 255.255.255.0 up
然后查看,就会有两个IP了
在两台机器上分别重启nginx和keepalived做测试
service nginx restart
service keepalived restart
1.在master上可以看到
在backup上可以看到
看日志可以看出,两台服务器的 MASTRE 和 BACUKUP 已经都正常了。
2.当我手动把master上的nginx停掉,可以看到master日志
在看此时的backup日志
显然已经成功把vip接管过来.
自此,本实验已经成功完成。
CentOS 7下Nginx服务器的安装配置 http://www.linuxidc.com/Linux/2017-04/142986.htm
CentOS上安装Nginx服务器实现虚拟主机和域名重定向 http://www.linuxidc.com/Linux/2017-04/142642.htm
CentOS 6.8 安装LNMP环境(Linux+Nginx+MySQL+PHP) http://www.linuxidc.com/Linux/2017-04/142880.htm
Linux下安装 PHP 环境并配置Nginx支持php-fpm模块 http://www.linuxidc.com/Linux/2017-05/144333.htm
Nginx服务的SSL认证和htpasswd认证 http://www.linuxidc.com/Linux/2017-04/142478.htm
Linux中安装配置Nginx及参数详解 http://www.linuxidc.com/Linux/2017-05/143853.htm
Nginx日志过滤 使用ngx_log_if不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配置 http://www.linuxidc.com/Linux/2017-03/142168.htm
CentOS6.9编译安装Nginx1.4.7 http://www.linuxidc.com/Linux/2017-06/144473.htm
Nginx 的详细介绍 : 请点这里
Nginx 的下载地址 : 请点这里
本文永久更新链接地址 : http://www.linuxidc.com/Linux/2017-06/144754.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- dubbo集群和负载均衡
- 认识认识LVS负载均衡集群
- Nginx+Tomcat 配置负载均衡集群
- 高可用负载均衡集群之 HAProxy 部署
- 在 Kubernetes 集群中 gRPC 的负载均衡
- 利用saltstack一键部署高可用负载均衡集群
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Impractical Python Projects
Lee Vaughan / No Starch Press / 2018-11 / USD 29.95
Impractical Python Projects picks up where the complete beginner books leave off, expanding on existing concepts and introducing new tools that you’ll use every day. And to keep things interesting, ea......一起来看看 《Impractical Python Projects》 这本书的介绍吧!