haproxy简介和编译安装
1
负载均衡简介
负载均衡(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等
1
HAProxy介绍
HAProxy是法国开发者 威利塔罗(Willy Tarreau) 在2000年使用C语言开发的一个开源软件,是一款具备高并发(一 万以上)、高性能的TCP和HTTP负载均衡器,支持基于cookie的持久性,自动故障切换,支持正则表达式及web状 态统计,目前最新TLS版本为2.0。
- https://www.haproxy.com/ #企业版
- http://www.haproxy.org/ #社区版
- 版本变化:
1
2
3
4
5
6历史版本更新功能: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
1
haproxy安装
编译安装
1)获取源码
- 编译安装:haproxy-2.0.8.tar.gz
2)解决LUA环境
- 由于centos自带的lua版本比较低并不符合HAProxy要求的lua最低版本(5.3)的要求,因此需要编译安装较新版本的lua环境,然后才能编译安装HAProxy。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28①获取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
2
3
4
5
6
71) Quick build & install 2) Basic principles 3) Build environment 4) Dependencies 5) Advanced build options 6) How to install HAProxy
5)提供安装haproxy的编译环境
1
2# 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文件已存在,直接编译
- 编译安装选项
1
2
3
4
5
6
7#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版本
1
2
3[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/
1
2
3
4
5
6
7
8
9
10
11
12
13# 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
1
2
3
4
5
6-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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41global 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编译安装完成
1
第三方安装包haproxy
-
https://pkgs.org/ 第三方的rpm包网址
-
然后选择:IUS Community Packages Archive x86_64(社区版)
-
选择对应的haproxy版本安装,注意依赖关系
yum安装haproxy
- 略
1
最后
以上就是合适白开水最近收集整理的关于haproxy简介和安装haproxy简介和编译安装的全部内容,更多相关haproxy简介和安装haproxy简介和编译安装内容请搜索靠谱客的其他文章。
发表评论 取消回复