haproxy简介和安装

haproxy简介和编译安装

负载均衡简介

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

负载均衡类型

1)四层:

  • 1.LVS(Linux Virtual Server)
  • 2.HAProxy(High Availability Proxy)
  • 3.Nginx(1.9)

2)七层:

  • 1.HAProxy
  • 2.Nginx

3)硬件:

  • F5 #https://f5.com/zh
  • Netscaler #https://www.citrix.com.cn/products/citrix-adc/
  • Array #https://www.arraynetworks.com.cn/
  • 深信服 #http://www.sangfor.com.cn/
负载均衡应用场景
  • 1.四层:Redis、Mysql、RabbitMQ、Memcache等
  • 2.七层:Nginx、Tomcat、Apache、PHP、图片、动静分离、API等

HAProxy介绍

HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具备高并发(一 万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状 态统计,目前最新TLS版本为2.0。

  • https://www.haproxy.com/ #企业版
  • http://www.haproxy.org/ #社区版
  • 版本变化:
历史版本更新功能:1.4	1.5	1.6	1.7	1.8 1.9	2.0 2.1-dev
1.8:多线程,HTTP/2缓存……
1.7:服务器动态配置,多类型证书……
1.6:DNS解析支持,HTTP连接多路复用……
1.5:开始支持SSL,IPV6,会话保持……
HAProxy功能

1)HAProxy功能:

  • TCP和HTTP反向代理
  • SSL/TSL服务器
  • 可以针对HTTP请求添加cookie,进行路由后端服务器
  • 可平衡负载至后端服务器,并支持持久连接
  • 支持所有主服务器故障切换至备用服务器
  • 支持专用端口实现监控服务
  • 支持不影响现有连接情况下停止接受新连接请求
  • 可以在双向添加,修改或删除HTTP报文首部
  • 响应报文压缩
  • 支持基于pattern实现连接请求的访问控制
  • 通过特定的URI为授权用户提供详细的状态信息

2)不具备的功能:

  • 正向代理–squid,nginx
  • 缓存代理–varnish
  • web服务–nginx、tengine、apache、php、tomcat
  • UDP–目前不支持UDP协议,2.1版本会支持UDP协议代理
  • 单机性能–LVS

haproxy安装

编译安装

1)获取源码

  • 编译安装:haproxy-2.0.8.tar.gz

2)解决LUA环境

  • 由于centos自带的lua版本比较低并不符合HAProxy要求的lua最低版本(5.3)的要求,因此需要编译安装较新版本的lua环境,然后才能编译安装HAProxy。
①获取lua5.3以上版本
# wget http://www.lua.org/ftp/lua-5.3.5.tar.gz


②解压缩
# tar xvf lua-5.3.5.tar.gz


③提供编译lua的环境
# yum install libtermcap-devel ncurses-devel libevent-devel readline-devel gcc


④ 编译安装lua
# cd lua-5.3.5
# make linux test


⑤查看安装lua和系统lua的版本
[root@centos7-27 lua-5.3.5]# pwd
/usr/local/src/lua-5.3.5
[root@centos7-27 lua-5.3.5]# lua -v
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
[root@centos7-27 lua-5.3.5]# ./src/lua -v
Lua 5.3.5  Copyright (C) 1994-2018 Lua.org, PUC-Rio


==>至此lua的环境已准备好

3)解压haproxy-2.0.8.tar.gz

  • tar xf haproxy-2.0.8.tar.gz

4)查看编译安装步骤

  • cd haproxy-2.0.8/
  • vim INSTALL
1) Quick build & install
2) Basic principles
3) Build environment
4) Dependencies
5) Advanced build options
6) How to install HAProxy

5)提供安装haproxy的编译环境

# yum install gcc gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel net-tools vim iotop bc zip unzip zlib-devel lrzsz tree screen lsof tcpdump wget ntpdate

6)make

  • Makefile文件已存在,直接编译
  • 编译安装选项
#HAProxy 1.8及1.9版本编译参数:
make ARCH=x86_64 TARGET=linux2628 USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 PREFIX=/usr/local/haproxy


#HAProxy 2.0编译参数:
# make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_SYSTEMD=1 USE_CPU_AFFINITY=1 USE_LUA=1 LUA_INC=/usr/local/src/lua-5.3.5/src/ LUA_LIB=/usr/local/src/lua-5.3.5/src/ PREFIX=/usr/local/haproxy

7)make install

  • #make install PREFIX=/usr/local/haproxy

8)验证HAProxy版本

[root@centos7-27 haproxy-2.0.8]# /usr/local/haproxy/sbin/haproxy -v
HA-Proxy version 2.0.8 2019/10/23 - https://haproxy.org/

9)HAProxy启动脚本

  • 在yum安装的service文件上面做相应修改
  • 为了调用方便,将/usr/local/haproxy/sbin/haproxy可执行程序导入PATH变量中
    #cp /usr/local/haproxy/sbin/haproxy /usr/local/sbin/
# cat /usr/lib/systemd/system/haproxy.service
[Unit]
Description=HAProxy Load Balancer
After=syslog.target network.target

[Service]
ExecStartPre=/usr/local/sbin/haproxy -f /etc/haproxy/haproxy.cfg -c -q
ExecStart=/usr/local/sbin/haproxy -Ws -f /etc/haproxy/haproxy.cfg -p /var/lib/haproxy/haproxy.pid
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

10)HAProxy命令

  • haproxy -h
-f <cfgfile|cfgdir>]* 指定配置文件路径
-c 检查模式:仅检查配置文件并退出
-q 静默模式:不输出信息
-p 将所有子项的pids写入此文件
-Ws master-worker mode with systemd notify support|具有systemd通知支持的master-worker模式

11)准备HAProxy的配置文件

  • mkdir /etc/haproxy
  • vim /etc/haproxy/haproxy.cfg
global
maxconn 100000
chroot /usr/local/haproxy
stats socket /var/lib/haproxy/haproxy.socket mode 600 level admin
uid 99
gid 99
daemon
#nbproc 4
#cpu-map 1 0
#cpu-map 2 1
#cpu-map 3 2
#cpu-map 4 3
pidfile /var/lib/haproxy/haproxy.pid
log 127.0.0.1 local3 info


defaults
option http-keep-alive
option forwardfor
maxconn 100000
mode http
timeout connect 300000ms
timeout client 300000ms
timeout server 300000ms


listen stats
  mode http
  bind 0.0.0.0:9999
  stats enable
  log global
  stats uri     /haproxy-status
  stats auth    haadmin:12345
  stats admin if TRUE    #启用管理功能,可以控制后端服务器上下线等,但是一般不会再这里配置
  
listen web_port
  bind 127.0.0.1:80
  mode http
  log global
  server web1 127.0.0.1:80 check inter 3000 fall 2 rise 5

12)启动haproxy

  • #mkdir /var/lib/haproxy
  • #chown 99.99 /var/lib/haproxy/ -R
  • #systemctl start haproxy
  • #systemctl enable haproxy
  • #systemctl status haproxy

13)访问配置文件中定义的proxy的状态页

==>至此haproxy编译安装完成

第三方安装包haproxy

  • https://pkgs.org/ 第三方的rpm包网址

  • 然后选择:IUS Community Packages Archive x86_64(社区版)

  • 选择对应的haproxy版本安装,注意依赖关系

yum安装haproxy

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值