linux下keepalived+nginx的负载均衡搭建

应用场景:集群搭建过程中nginx通常会代理多个tomcat,以达到高可用状态,但此时如果nginx所在的机器宕机,会影响线上使用,可以用keepalived+nginx来做nginx的ha

一、所需环境:1)两台主机proxy01为master,proxy02为backup;2)centos6.6 x64;3)keepalived;4)nginx

二、安装nginx

1)安装编译nginx所需的依赖包

yum install gcc gcc-c++ make automake autoconf libtool pcre pcre-devel zlib zlib-devel openssl openssl-devel

2)上床nginx到/usr/local/src目录

3)编译安装nginx

tar -zxvf nginx-1.6.2.tar.gz

cd nginx-1.6.2

./configure --prefix=/usr/local/nginx

make && make install

4)配置nginx

vi /usr/local/nginx/conf/nginx.conf

修改用户为root并保存

5)启动nginx

/usr/local/nginx/sbin/nginx

6)设置nginx开机启动

vi /etc/rc.local

加入:/usr/local/nginx/sbin/nginx

三、安装keepalived(http://www.keepalived.org/download.html)

1、上传keepalived到/usr/local/src目录

2、解压keepalived

3.进入keepalived目录并配置

./configure --prefix=/usr/local/keepalived

make && make install

4.将keepalived安装成linux系统服务

mkdir /etc/keepalived

复制默认配置文件到默认路径

cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/

复制 keepalived 服务脚本到默认的地址

cp /usr/local/keepalived/etc/rc.d/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

5、修改keepalived配置文件

1)master节点配置文件

vi /etc/keepalived/keepalived.conf

global_defs {

router_id proxy01 ## 标识本节点的字条串,通常为 hostname

}

## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果 脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。

如果脚本执行结果非 0,并且 weight 配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应 的值。

vrrp_script chk_nginx {

script "/etc/keepalived/nginx_check.sh"
interval 2 ## 检测时间间隔

weight -20 ## 如果条件成立,权重-20

}

## 检测 nginx 状态的脚本路径

## 定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称

vrrp_instance VI_1 {

state MASTER ## 主节点为 MASTER,对应的备份节点为 BACKUP

interface eth1 ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同,我的是 eth1
virtual_router_id 51 ## 虚拟路由的 ID 号,两个节点设置必须一样,可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址

mcast_src_ip 192.168.1.51 ## 本机 IP 地址

priority 100 ## 节点优先级,值范围 0-254,MASTER 要比 BACKUP 高
nopreempt ## 优先级高的设置 nopreempt 解决异常恢复后再次抢占的问题
advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样,默认 1s
## 设置验证信息,两个节点必须一致

authentication {

auth_type PASS

auth_pass 1111 ## 真实生产,按需求对应该过来

}

## 将 track_script 块加入 instance 配置块

track_script {

chk_nginx ## 执行 Nginx 监控的服务

}

## 虚拟 IP 池, 两个节点设置必须一样

virtual_ipaddress {

192.168.1.50 ## 虚拟 ip,可以定义多个

}

}

2)修改backup节点配置文件,参考master

6、编写nginx状态检测脚本  /etc/keepalived/nginx_check.sh (已在 keepalived.conf 中配置)

vi /etc/keepalived/nginx_check.sh

#!/bin/bash

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

保存并赋予脚本的执行权限

chmod +x /etc/keepalived/nginx_check.sh 

7.启动keepalived

service keepalived start

8.测试查看

访问vip50地址,看下是访问proxy01还是proxy02

时间: 2024-12-17 05:46:11

linux下keepalived+nginx的负载均衡搭建的相关文章

Linux下利用nginx实现负载均衡

linux下利用nginx实现负载均衡 前提条件: 1,安装好jdk 2,安装好tomcat和nginx(可以参考我前两篇文章) 满足前提条件后,要用nginx实现负载均衡,主要是靠配置nginx的配置文件. 我们要实现的架构图如下: 1.分别部署3个tomcat,端口分别为8080,8081,8082 drwxr-xr-x 9 root root 4096 Mar 11 13:41 tomcat8-8080drwxr-xr-x 9 root root 4096 Mar 11 17:27 tom

Linux下配置Nginx + Tomcat负载均衡

Nginx简介 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器 . Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了.Igor 将源代码以类BSD许可证的形式发布.自Nginx 发布四年来,Nginx 已经因为它的稳定性.丰富的功能集. 示例配置文件和低系统资源的消耗而闻名了.目前国内各大门户网站已经部署了Nginx,如

ubantu 下 tomcat + nginx 实现负载均衡

在自己的ubantu虚拟机下实现nginx+tomcat负载均衡,自己本地练着玩,挺有意思的,记录下过程. 以下参考了几篇有用的博文: Tomcat+Nginx搭建高性能负载均衡集群  http://blog.csdn.net/wang379275614/article/details/47778201: 在Linux里安装.启动nginx   http://blog.csdn.net/molingduzun123/article/details/51850925:http://www.cnbl

Keepalived+Nginx实现负载均衡高可用

一.负载均衡高可用 Nginx作为负载均衡器,所有请求都到了Nginx,可见Nginx处于非常重点的位置,如果Nginx服务器宕机后端web服务将无法提供服务,影响严重. 为了避免负载均衡服务器的宕机故障,需要建立一个备份机.主备机上都运行高可用(High Availability)监控程序,通过传送心跳信息来监控对方的运行状况.当备份机不能在一定的时间内收到对方的正常心跳时,它就接管主服务器的服务IP并继续提供负载均衡服务:当备份管理器又从主管理器收到"I am alive"这样的信

nginx+keepalived+tomcat+memcache负载均衡搭建小集群

最近一段时间一直在研究高可用高并发负载均衡分布式集群等技术,先前发布了lvs基于网络第四次协议搭建的小集群,现在用空刚好搭建了一个基于nginx搭建的小集群. 我准备了四台机器,情况如下 机器名称 机器IP 安装软件 角色 虚拟ip 描述 vmm01 192.168.252.11 Nginx.keepalived Nginx主机 192.168.252.200 反向代理到tomcat1和tomcat2 vmm04 192.168.252.14 Nginx.keepalived Nginx备机 主

Ubuntu下配置 keepalived+nginx+tomcat 负载均衡

本文力图阐述在 Ubuntu Server 环境下使用 Keepalived + Nginx + Tomcat 搭建高可用负载均衡环境的操作步骤和简约配置,这里不涉及性能调优.先说一下他们各自扮演的角色: Tomcat – 应用服务器 Nginx – 反向代理服务器,作为负载均衡器 Keepalived – 用以检测 Nginx 状态,保证高可用 整个环境都在Virtual Box中的虚拟机上完成,以下是要完成此环境需要的软件: Oracle VM Virtual Box 4.3 Ubuntu

Windows下使用Nginx实现负载均衡

Nginx (”engine x”) 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形式发布.尽管还是测试版,但是,Nginx 已经因为它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名了. Nginx负载均衡有哪些功能呢? 如果后面的服务器其中一台坏了,它能自动识

Windows下安装Nginx及负载均衡

1.下载Windows版本的Nginx http://nginx.org/en/download.html 2.解压Nginx包,配置conf文件下的nginx.conf文件 3.配置说明: #user nobody; #N工作进程数,默认为1 worker_processes 1; #错误日志保存路径 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid

windows平台下利用Nginx做负载均衡

1.下载nginx(http://nginx.org/en/download.html)安装包,解压,并使用cmd命令转到nginx.exe所在的目录 2.执行cmd命令start nginx启动nginx服务 3.在iis上部署3个站点(数量任意),ip地址分别为: 192.168.199.104:8081192.168.199.104:8082192.168.199.104:8083 4.配置nginx.conf #服务器的集群 upstream netitcast.com { #服务器集群