使用Nginx+Keepalived组建高可用负载平衡Web server集群

搭建Nginx高可用集群(keepalived+双机热备) 一、Nginx高可用 首先了解一下什么是高可用,高可用是分布式系统架构中必须考虑的因素。 我们都知道,使用nginx的反向代理和负载均衡可以解决tomcat等web容器的单点故障以及高并发等问题。 反向代理是指以代理服务器来接收浏览器的请求,然后再将请求转发到内网的服务器,然后再将从服务器上得到的结果返回给客户端。负载均衡就是要解决一个web服务器压力过大的问题,此时可以通过多个web服务器根据不同的算法将并发过来的请求分配到多个服务器上,从而减轻单个服务器压力过大的问题。 这样的话,当一台web服 阅读详情

转自:http://blog.youkuaiyun.com/luxiaoyu_sdc/article/details/7333024
一,首先说明一下网络拓扑结构:


1,Nginx 反向代理Server(HA):
①Nginx master:192.168.1.157
②Nginx backup:192.168.1.158
虚拟IP统一为:192.168.1.110  
2,web服务器:
192.168.1.160 ,192.168.1.161,192.168.1.162   即web服务器,已配置好 Tomcat(Jboss等皆可)和Java程序
3,MySQL 数据库Server
mysql主从服务器

二,Nginx安装配置
1,安装
建议先用yum install yum-fastestmirror更新下源

下载并安装nginx1.0.9,下载文件均放到/usr/local/src目录下
cd /usr/local/src

①update yum
yum -y update

②利用CentOS Linux系统自带的yum命令安装、升级所需的程序库

安装依赖包

yum install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

下载nginx

cd /usr/local/src

wget http://www.nginx.org/download/nginx-1.0.9.tar.gz

tar zxvf nginx-1.0.9.tar.gz

cd nginx-1.0.9

配置安装:

./configure –prefix=/usr –sbin-path=/usr/sbin/nginx –conf-path=/etc/nginx/nginx.conf –error-log-path=/var/log/nginx/error.log –pid-path=/var/run/nginx/nginx.pid –lock-path=/var/lock/nginx.lock –user=nginx –group=nginx –with-http_ssl_module –with-http_flv_module –with-http_gzip_static_module –http-log-path=/var/log/nginx/access.log –http-client-body-temp-path=/var/tmp/nginx/client/ –http-proxy-temp-path=/var/tmp/nginx/proxy/ –http-fastcgi-temp-path=/var/tmp/nginx/fcgi/

make

make install

建立用户:
/usr/sbin/groupadd nginx
/usr/sbin/useradd -g nginx -M nginx
mkdir -p /var/tmp/nginx/client
启动nginx

/usr/sbin/nginx

ps:如果中途提示缺少库,直接yum install xxx即可。
即:conf-path=/etc/nginx/nginx.conf,用户名为nginx,所属的组为nginx

   2,配置

Nginx负载均衡设置:

①修改配置文件:
vi /etc/nginx/nginx.conf

步骤1,添加负载均衡的http upstream模块
upstream esbwebserver {
server 192.168.1.160:8888;
server 192.168.1.161:8888;
}

步骤2,server指令
server
{
listen 80;
server_name localhost;#注意此处为localhost

location / {
proxy_pass http://esbwebserver;# 添加的tomcat集群名称
……
}

②,重启Nginx,加载修改过的配置文件:
步骤1, 停止nginx引擎
killall -9 nginx

步骤2,启动nginx
/usr/sbin/nginx

到此为止,我们的负载均衡就实现了,下面实现Nginx的高可用,即双机热备。

三,Keepalived 安装配置
1,下载并安装keepalived-1.1.15.tar.gz,下载文件均放到/usr/local/src目录下
cd /usr/local/src
wget http://www.keepalived.org/software/keepalived-1.1.15.tar.gz

①解压缩
tar zxvf keepalived-1.1.15.tar.gz

②安装
cd keepalived-1.1.15
./configure –prefix=/usr/local/keepalived
make && make install

③安装成功后做成服务模式,方便启动和关闭
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/

④ 分别设置主和备Nginx上的 安装Keepalived配置文件。

配置文件位置:
/usr/local/keepalived/etc/keepalived/keepalived.conf

步骤一,先配置主Nginx server上的keepalived.conf文件,如下所示:

! Configuration File for keepalived

global_defs {
notification_email {
644856452@qq.com
}
notification_email_from 644856452@qq.com
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_script check_run {
script “/root/bin/nginx_check.sh”
interval 5
}
vrrp_sync_group VG1 {
group {
VI_1
}
}

vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
mcast_src_ip 192.168.1.157
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
    check_run
}

virtual_ipaddress {
192.168.1.110
}
}

步骤二,配置backup 服务器的keepalived.conf文件,如下所示:
! Configuration File for keepalived

global_defs {
notification_email {
644856452@qq.com
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server 127.0.0.1
smtp_connect_timeout 30
router_id LVS_DEVEL
}

vrrp_script check_run {
script “/root/bin/nginx_check.sh”
interval 5
}
vrrp_sync_group VG1 {
group {
VI_1
}
}

vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 99
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}

track_script {
    check_run
}

virtual_ipaddress {
192.168.1.110
}
}

参考下例配置:
—————————————————–带注释的示例—————————————————-
在主服务器编写配置文件
vrrp_script check_run{
script “/opt/nginx_pid.sh”

监控脚本

            interval 2                             

监控时间

            weight 2                                ###如果检测返回值不为真weight 2 表示减2,权重值降低,backup server权重值>现Master的,切换

}

vrrp_instance VI_1 {
state MASTER ### 设置为 主
interface eth0 ### 监控网卡
virtual_router_id 51 ### 这个两台服务器必须一样
priority 101 ### 权重值 MASTRE 一定要高于 BAUCKUP
authentication {
auth_type PASS ### 加密
auth_pass 1111 ###加密的密码,两台服务器一定要一样,不然会出错
}

   track_script {
            check_run     ### 执行监控的服务
    }

    virtual_ipaddress {
         192.168.1.110                          ###    VIP 地址
    }

}

6.在backup server 服务器 keepalived 配置
vrrp_script check_run{
script “/opt/nginx_pid.sh”
interval 2
weight 2
}

vrrp_instance VI_1 {
state BACKUP ### 设置为 辅机
interface eth0
virtual_router_id 51 ### 与 MASTRE 设置 值一样
priority 100 ### 比 MASTRE权重值 低

    authentication {
                 auth_type PASS
                 auth_pass eric                    ### 密码 与 MASTRE 一样
    }

    track_script {
            check_run
    }

    virtual_ipaddress {
             192.168.1.110
    }

}
———————————————-over——————————————————————-

说明:
1,绑定虚拟IP:
ifconfig eth0:1 192.168.1.110 broadcast 192.168.1.255 netmask 255.255.255.0 up
route add -host 192.168.1.110 dev eth0:1

2, 启动,关闭keepalived :
service keepalived start
service keepalived stop

3,测试可用性:
①主Nginx停止Nginx或直接断网情况下(backup正常),访问虚拟IP:192.168.1.110的相关Web服务,正常,测试通过
②backup Nginx停止Nginx或直接断网情况下(Master正常),访问虚拟IP:192.168.1.110的相关Web服务,正常,测试通过

4,监控
可用安装Nagios监控服务,详细请网络搜寻,很多这种资料的。
也可以参考:
http://blog.youkuaiyun.com/luxiaoyu_sdc/article/details/7333416

nginx详解 nginx简介 nginx概述 Nginx (“engine x”) 是一个高性能的 HTTP 和反向代理服务器,特点是占有内存少,并发能力强,事实上 nginx 的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用 nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 nginx作为web服务器 Nginx 可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比... 阅读详情

相关推荐

RK3588内核崩溃日志捕获:pstore与ramoops的实战配置指南

本文详细介绍了在RK3588嵌入式设备上配置pstore与ramoops以捕获内核崩溃日志的实战指南。通过内核配置调整、设备树设置及高级调试技巧,帮助开发者有效定位系统崩溃原因,特别适合户外智能设备等无法长期连接调试器的场景。文章还提供了生产环境优化建议,确保日志捕获的可靠性与安全性。

weixin_29189363的博客 407

nginx+keepalived集群搭建

在docker容器中搭建nginx+keepaliced集群

hcyxsh的博客 1669

【大二组培训】2017年电子设计大赛H题总结(软件部分)

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 前言 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pandas as pd import matplotlib.pyplot as plt im

HAIBARA的博客 3024

nginx+keepalived高可用集群搭建

nginx+keepalived高可用集群搭建详细步骤

u011509628的博客 627

Petalinux 2021.1 + Vivado 2021 实战:手把手教你为Zynq板卡移植Linux并搞定AXI DMA驱动

本文详细介绍了基于Petalinux 2021.1和Vivado 2021工具链,为Zynq开发板移植Linux系统并开发AXI DMA驱动的全流程。从环境配置、硬件设计到驱动适配与性能优化,提供了实战避坑技巧和版本特异性问题的解决方案,帮助开发者快速构建高速数据传输系统。

weixin_42641741的博客 387

告别商业软件?实测用gnina(CNN打分版)做分子对接:从安装到跑通第一个案例

本文详细介绍了基于卷积神经网络(CNN)的开源分子对接工具gnina的安装与实战应用。从环境配置、编译安装到运行第一个COVID-19主蛋白酶抑制剂对接案例,全面解析了这款替代商业软件的强大功能,特别适合预算有限的研究团队进行药物发现和虚拟筛选。

weixin_42522320的博客 256

nginx+keepalive高可用搭建方案

当master机器出现故障时,keepalived第一时间收回虚拟IP地址并分配给slave机器,此时相当于slave机器升级为master机器,此时用户只需要记住keepalived的虚拟IP地址即可。keepalive是一个用于保持长连接的插件,它可以提高服务器的效率和稳定性。若master机器恢复正常,则不会被分配虚拟IP地址,直到slave机器出现故障后,master才会被分配虚拟IP地址。即master机器将会有两个ip地址,一个是自己的源ip,一个是keepalived给的虚拟IP地址。

qq_41118173的博客 7497

【深度剖析】三一重工的数字化转型(中篇)

三一重工在数字化转型方面取得了提高效率、降低成本、加强研发创新和改善内控管理等多方面的成效。本研究旨在通过对三一重工数字化转型的深入分析,引导企业思考在第四次工业革命与第三次能源革命交汇的超级技术窗口期,如何进一步把握发展机遇,并为同行业其他企业提供探索性的建议。作为装备制造行业的佼佼者,三一重工的数字化转型受到了业界的广泛关注。作为行业内首批接触并实践数字化转型的企业之一,三一重工的转型经验不仅成功,而且积累了丰富的理论与实践,为其他制造业企业的数字化转型提供了可借鉴的范例。

领信卓越的博客 2307

keepalived + nginx组建高可用负载平衡Web server集群

1 nginx负载均衡高可用 1.1 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。 为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都运行高可用(High Availability)监控程序,通过传送诸如“I am alive”这样的信息来监控对

l192168134的博客 6979

Linux下基于AHCI controller模块实现SATA Platform驱动附代码详细流程

本文主要是针对ARM A55集成了AHSATA controller模块开发sata驱动,通过Platform的形式在linux识别到SSD,本文详细讲述整个开发过程,同时对SATA Platform驱动进行讲解。1、配置SATA Phy的初始化;2、打开SATA Platform相关编译开关;3、配置设备树;4、linux启动识盘。

Luckiers的博客 2497

【系统分析师】2009年真题:综合知识-答案及详解

在某银行业务的用例模型中,“取款”用例需要等到“存款”用例执行之后才能执行,两个用例之间的关系属于(1);“取款”和“存款”两个用例中都需 要执行查询余额的功能,将查询余额提取成独立的用例,那么“取款”和“存款” 用例与“查询余额”用例之间的关系属于(2)。(1)A. 关联关系 B. 扩展关系 C. 使用关系 D. 依赖关系 (2)A. 扩展关系 B. 使用关系 C. 依赖关系 D. 继承关系【参考答案】D、A雇员类含有计算报酬的行为,利用面向对象的(3),可以使得其派生类专职 雇员类和兼职雇员类计算报酬的

数据知道的博客 1万+

【Nginx+Keepalived】组建高可用负载平衡Web server集群

版权声明:本文为博主原创文章,未经博主允许不得转载。 一,首先说明一下网络拓扑结构:   1,Nginx 反向代理Server(HA):      ①Nginx master:192.168.1.157      ②Nginx backup:192.168.1.158         虚拟IP统一为:192.168.1.110     2,web服务器:

AG的博客 346

OpenClaw人人养虾:配置通义千问(Qwen)

通义千问(Qwen)是阿里云推出的大语言模型系列。OpenClaw 支持通过 Qwen Portal 插件实现 OAuth 免费额度认证,每日可免费使用 2000 次请求,无需绑定支付方式。

王国平的博客 1260

Nginx介绍以及原理解析

Nginx 概念 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器 。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。 ​ Nginx以事件驱动的方式编写,所以有非常好的性能,同时也是一个非常高效的反向代理、负载平衡服务器。在性能上,Nginx占用很少的系统资源,能支持更多的并发连接,达到更高的访问效率;在功能上,Nginx是优秀的代理服

kiligzzz的博客 400

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: nginx+keepalive主从双机热备+自动切换解决方案
下一篇: Concurrent下的线程安全集合
wingahi
博客等级 码龄15年 15粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值