我是靠谱客的博主 合适白开水,这篇文章主要介绍haproxy简介和安装haproxy简介和编译安装,现在分享给大家,希望可以做个参考。

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
7
1) 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
41
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编译安装完成

复制代码
1

第三方安装包haproxy

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

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

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

yum安装haproxy

复制代码
1

最后

以上就是合适白开水最近收集整理的关于haproxy简介和安装haproxy简介和编译安装的全部内容,更多相关haproxy简介和安装haproxy简介和编译安装内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(68)

评论列表共有 0 条评论

立即
投稿
返回
顶部