HAProxy--高性能反向代理

Web架构

在这里插入图片描述

负载均衡介绍

负载均衡:Load Balance,简称LB,是一种服务或基于硬件设备等实现的高可用反向代理技术,负载均衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备,从而提高了公司业务的并发处理能力、保证了业务的高可用性、方便了业务后期的水平动态扩展。

阿里云SLB介绍:https://developer.aliyun.com/article/1803

为什么使用负载均衡

1.增加业务并发访问及处理能力  -->   解决单服务器瓶颈问题
2.节约公网IP地址            -->   降低IT支出成本
3.隐藏内部服务器IP          -->   提高内部服务器安全性
4.Web服务器的动态水平扩展    -->   对用户无感知
5.负载均衡配置简单          -->   固定格式的配置文件
6.负载均衡功能丰富          -->   支持四层和七层,支持动态下线主机
7.负载均衡性能较强          -->    并发数万甚至百万

负载均衡类型

四层:

LVS:      Linux virtual server
Nginx:    1.9版之后
HAProxy:  High Availability Proxy

七层:

HAProxy
Nginx

硬件:
F5 :https://www.f5.com.cn/
Netscaler :https://www.netscaler.com/
Array :https://www.arraynetworks.com.cn/
深信服: https://www.sangfor.com.cn/
北京灵州 :http://www.lingzhou.com.cn/cpzx/llfzjh/

HAProxy简介

HAProxy的定位和LVS类似,是一个专业级的反向代理,往往作为企业服务的总入口。

Nginx作为web服务器,其性能还是很优秀的,但是作为反向代理性能还是不如LVS,LVS是工作在Linux内核中的,LVS的并发可以达到百万级以上。

LVS虽然性能好,但是没有Nginx功能丰富,Nginx可以提供四层和七层的反向代理,且还具备健康检查功能。

HAProxy作为反向代理介于LVS和Nginx之间,性能比Nginx好,功能比LVS更丰富。HAProxy会作为企业项目中一个总的入口。

应用场景

随着公司业务的发展,公司负载均衡服务既有四层的,又有七层的,通过LVS实现四层和Nginx实现七层的负载均衡对机器资源消耗比较大,并且管理复杂度提升,运维总监要求,目前需要对前端负载均衡服务进行一定的优化和复用,能否用一种服务同既能实现七层负载均衡,又能实现四层负载均衡,并且性能高效,配置管理容易,而且还是开源。

在企业生产环境中,每天会有很多的需求变更,比如增加服务器、新业务上线、url路由修改、域名配置等等,对于前端负载均衡设备来说,容易维护,复杂度低,是首选指标。在企业中,稳定压倒一切,与其搞得很复杂,经常出问题,不如做的简单和稳定。在企业中,90%以上的故障,来源于需求变更。可能是程序bug,也可能是人为故障,也可能是架构设计问题等。前端负载均衡设备为重中之重,在软件选型上一定充分考虑,能满足业务的前提下,尽可能降低复杂度,提高易维护性。

HAProxy是什么

社区版:https://www.haproxy.org/
企业版:https://www.haproxy.com/

在这里插入图片描述
这里HAProxy吹了一个牛,“offering high availability”提供高可用,其实它本身不具备高可用,需要借助别的服务,像Keepalived…
在这里插入图片描述

HAProxy功能

在这里插入图片描述

支持功能
  1.TCP和HTTP反向代理
  2.SSL/TSL服务器
  3.可以针对HTTP请求添加cookie,进行路由后端服务器
  4.可平衡负载至后端服务器,并支持持久连接
  5.支持所有主服务器故障切换至备用服务器
  6.支持专用端口实现监控服务
  7.支持停止接受新连接请求,而不影响现有连接
  8.可以在双向添加,修改或删除HTTP报文首部响应报文压缩
  9.支持基于pattern实现连接请求的访问控制
  10.通过特定的URI为授权用户提供详细的状态信息
  11.支持http反向代理
  12.支持动态程序的反向代理
  13.支持基于数据库的反向代理

在这里插入图片描述

脚本安装

#!/bin/bash
#
#******************************************************************************
#Author:            wangxiaochun
#Date:              2022-07-03
#FileName:          install_haproxy.sh
#URL:               www.wangxiaochun.com
#Description:       install haproxy for centos 7/8 & ubuntu 18.04/20.04
#Copyright (C):     2022 All rights reserved
#******************************************************************************

HAPROXY_VERSION=2.6.1
HAPROXY_FILE=haproxy-${HAPROXY_VERSION}.tar.gz
#HAPROXY_FILE=haproxy-2.2.12.tar.gz
LUA_VERSION=5.4.4
LUA_FILE=lua-${LUA_VERSION}.tar.gz
#LUA_FILE=lua-5.4.3.tar.gz
HAPROXY_INSTALL_DIR=/apps/haproxy

SRC_DIR=/usr/local/src
CWD=`pwd`
CPUS=`lscpu |awk '/^CPU\(s\)/{print $2}'`
LOCAL_IP=$(hostname -I|awk '{print $1}')

STATS_AUTH_USER=admin
STATS_AUTH_PASSWORD=123456

VIP=192.168.10.100
MASTER1=192.168.10.101
MASTER2=192.168.10.102
MASTER3=192.168.10.103

. /etc/os-release

color () {
   
   
    RES_COL=60
    MOVE_TO_COL="echo -en \\033[${RES_COL}G"
    SETCOLOR_SUCCESS="echo -en \\033[1;32m"
    SETCOLOR_FAILURE="echo -en \\033[1;31m"
    SETCOLOR_WARNING="echo -en \\033[1;33m"
    SETCOLOR_NORMAL="echo -en \E[0m"
    echo -n "$1" && $MOVE_TO_COL
    echo -n "["
    if [ $2 = "success" -o $2 = "0" ] ;then
        ${SETCOLOR_SUCCESS}
        echo -n $"  OK  "    
    elif [ $2 = "failure" -o $2 = "1"  ] ;then 
        ${SETCOLOR_FAILURE}
        echo -n $"FAILED"
    else
        ${SETCOLOR_WARNING}
        echo -n $"WARNING"
    fi
    ${SETCOLOR_NORMAL}
    echo -n "]"
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值