使用HAProxy+Nginx搭建web集群 ———— Keepalived实现高可用负载均衡


前言

使用需求: 负载均衡群阶可以用tocat+nginx的负载均衡群集,还有lvs负载均衡群集。三种群集相比来说,lvs性能最好,但是搭建复杂,ningx的upstream模块支持群集,但是群集的节点的故障检查功能不是很多,性能也比不上haproxy。
相对来能实现什么样的效果: 对于企业的服务器(web.ftp等)能实现负载均衡,其中一台服务器宕机之后能依然能上网站ftp。
知识点的描述: 负载均衡的常用调度算法:
(1):RR(Round Robin),是最简单最常用的一种算法,即轮询调度。
(2):LC(LEAST Conections),即最小节点数算法,根据后端的节点数大小动态分配前端请求
(3):SH(Source Hashing),即基于来源访问调度算法,用于一些有Session会话记录在服务器端的场景,可以基于来源的IP,Cookis等做集群调度
(4):如果需要实现haproxy的高可用,可以配置前一次所讲的keepalived,配置方法基本相同,需要增加一台haproxy用来做备份,注意一点的是需要在防火墙上开启keepalived的组播地址相应端口

Haproxy介绍:
Haproxy是一个开源的高性能的反向代理或者说是负载均衡服务软件之一,它支持双机热备、虚拟主机、基于TCP和HTTP应用代理等功能。
其配置简单,而且拥有很好的对服务器节点的健康检查功能(相当于keepalived健康检查),当其代理的后端服务器出现故障时,Haproxy会自动的将该故障服务器摘除,当服务器的故障恢复后Haproxy还会自动将RS服务器添加

Haproxy特别使用与那些访问量很大。但又需要会话保持或七层应用的业务。Haproxy运行在普通的服务器硬件上,仅仅进行简单的优化就可以支持数以万计的并发连接。
并且它的运行模式使得它可以很简单安全的整合到各种网站的架构中,同时使得应用服务器不会暴露到网络中。

Haproxy软件引入了frontend,backend的功能,frontend(acl规则匹配)可以运维管理人员根据任意HTTP请求头做规则匹配,然后把请求定向到相关的backend(server pools等待前端把请求转过来的服务器组)。通过frontend和backup,我们可以很容易的实现haproxy的7层代理功能,haproxy是一款不可多得的优秀代理服务软件

Haproxy支持两种主要代理模式: 第一个是4层tcp代理(例如:可用于邮件服务内部协议通信服务器、Mysql服务等)。第二个是7层代理(如HTTP代理)。在4层tcp代理模式下,Haproxy仅在客户端和服务器之间双向转发流量。但是在7层模式下Haproxy会分析应用层协议,并且能通过运行、拒绝、交换、增加、修改或者删除请求(request)或者回应(reponse)里指定内容来控制协议。


一、实验环境:

系统类型 IP地址 主机名 所需软件
Centos7.4 1708 64bit 192.168.100.101 Haproxy1 haproxy-1.5.19+keepalived
Centos7.4 1708 64bit 192.168.100.102 Nginx1 nginx-1.12.0
Centos7.4 1708 64bit 192.168.100.103 Nginx2 nginx-1.12.0
Centos7.4 1708 64bit 192.168.100.104 Haproxy2 haproxy-1.5.19+keepalived

实验拓扑:
在这里插入图片描述


二、实验步骤:

1、编译安装Nginx服务器(nginx1,nginx2)

1.nginx1 服务器

192.168.100.102

[root@nginx1 ~]# yum -y install pcre-devel zlib-devel
[root@nginx1 ~]# tar xf nginx-1.12.0.tar.gz -C /usr/src/
[root@nginx1 ~]# cd /usr/src/nginx-1.12.0
[root@nginx1 nginx-1.12.0]# useradd -M -s /sbin/nologin nginx
[root@nginx1 nginx-1.12.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx &&make &&make install
[root@nginx1 nginx-1.12.0]# echo $?
0
[root@nginx1 nginx-1.12.0]# cd
[root@nginx1 ~]# echo '<h1>web1</h1>' >/usr/local/nginx/html/index.html
[root@nginx1 ~]# /usr/local/nginx/sbin/nginx -t
[root@nginx1 ~]# /usr/local/nginx/sbin/nginx   
[root@nginx1 ~]# netstat -anput |grep nginx

如果需要关闭服务 /usr/local/nginx/sbin/nginx -s stop


2.nginx2 服务器 (使用脚本安装,确认源码软件已存放在/root目录中)

192.168.100.103

[root@nginx2 ~]# vim nginx-install.sh
---------------------------------------------------------

#!/bin/bash
read -p "请输入首页内容:" index
yum -y install pcre-devel zlib-devel
tar zxvf nginx-1.12.0.tar.gz -C /usr/src/
cd /usr/src/nginx-1.12.0
useradd -M -s /sbin/nologin nginx
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install
echo "$index"  > /usr/local/nginx
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值