HAProxy可以在各种主流的Linux发行版、主流的Unix操作系统(如Fredsd、Solaris)安装和稳定高效的运行,从HAProxy提供的安装文档“INSTALL”上,可以获得这些信息,如图5-3所示。
图5- 3
有两种安装HAProxy的方法:一种是用Linux操作系统发行版的包管理工具,另一种则是用源码进行编译安装。一般而言,包管理工具局限性比较大,每种Linux操作系统发行版的包管理工具不一样,不具有通用性,而且封装的版本较陈旧,好处是安装简单、快捷;源码安装,可选择较新的稳定版本,通用性强,在Linux或者Unix上,安装部署的方法几乎一致。
5.2.1 用包管理工具安装HAProxy
采用包管理器安装软件,包括安装HAProxy,为了解决好软件包之间的依赖,目标系统最好能访问互联网。如果是封闭性网络,自建的软件仓库,处理路径要曲折一些。接下来,介绍一些作者常用的Linux 操作系统发行版安装HAProxy的方法。
1)Rocky 9安装HAProxy
系统命令行执行指令“dnf install haproxy”(执行“yum install haproxy”也是一样),获取到的版本为“haproxy-2.4.17”,输入字母“y”进行正式安装,如图5-4所示。Centos 各发行版本,也是一样的安装方法,不再赘述。
图5- 4
2)Debian 11安装HAProxy
系统命令行执行“apt install HAProxy”或者“apt-get install haproxy”,获取到的版本为“haproxy-2.2.9”,相对于Rocky 9,所提供的版本较低,无需人工干涉,自动完成安装(后悔的话,执行“apt remove haproxy”卸载)如图5-5所示。
图5- 5
3)Suse 15安装HAProxy
系统命令行执行“zypper install haproxy”,获取到的版本为“haproxy-2.4.8”,输入字母”y”进行正式安装,如图5-6所示。
图5- 6
以包管理器安装到Linux系统的HAProxy,其主要的文件有两个:一个可执行文件“haproxy”,用来启动“Haproxy”服务,完整的路径是”/usr/sbin/haproxy”;另一个是启动服务所必须的配置文件”/etc/haproxy/haproxy.cfg”,对HAProxy进行维护的时候,几乎全部的工作都在这个配置文件上边进行,当然,也可以再别的路径重新定义配置文件,启动HAProxy服务时,加选项“-f”指定自建的配置文件。
包管理器安装方便快捷,也不容易出错(相对于源码安装),但其隐藏了细节,整个过程不可控,比如是否支持某项功能,需要安装完成后查看,比如前文关于Nginx需要“Health Check”时,就需要重新进行处理。那么用包管理器安装的HAProxy,是否包含我们关注的某些功能,比如多域名证书支持(Openssl SNI)?系统命令行运行指令“haproxy”加选项“-vv”,一窥究竟,如图5-7所示。
图5- 7
5.2.2 用源码安装HAProxy
绝大部分开源工具,为了使软件适应各种运行环境(Unix或Linux),都以源码方式进行正式发布。
采用源码方式进行安装,具有如下的优势:
(1) 自由选择软件版本。
(2) 安装过程可以控制。在配置(./configure)或者编译过程中,加入选项或者参数,使性能更为优化、功能更为精简(要什么就选什么)。
(3) 限定安装目录。将软件所需的文件、目录限定到指定的路径,避免满山放羊,日常维护和管理省心省力。
(4) 通用性。不管操作系统是Unix还是Linux,大小通吃。
(5) 有利于提高人员的专业技术水平。
当然,有优点必然也有缺点。比如安装过程复杂耗时、技术水平要求高(要有很强的排错能力)。至于用哪种方法安装软件,没有一定之规,也没有哪种方式更优,还是根据自己的习惯来选择吧!
1)选择HAProxy版本
HAProxy官方网站发布的最新版本为“2.7.8”,作者一般习惯于选择次新一点的稳定版本“2.6.13”。由于某种众所周知的原因,官方网站http://www.haroxy.org 有时用浏览器不能访问,可尝试镜像站点https://mirrors.huaweicloud.com/haproxy/ ,此镜像站点提供HAProxy的各种版本,如图5-8所示。
图5- 8
2)下载HAProxy到目标服务器
登录到目标系统,命令行执行如下指令:
#用git拉取整个分支 git clone https://git.haproxy.org/git/haproxy-2.6.git #或者用wget获取压缩包文件,再解包 wget https://www.haproxy.org/download/2.6/src/snapshot/haproxy-ss-LATEST.tar.gz tar zxvf haproxy-ss-LATEST.tar.gz |
这两种方式获取的版本都是“haproxy-2.6.13”,通过阅读下载来的文件“VERSION”,确认文件的版本号,如图5-9所示。
图5- 9
3)安装HAProxy所需的依赖
一般情况下,编译安装HAProxy需要OpenSSL、Pcre、Gcc等几个依赖包,因此需要预先将这几个工具包安装到系统。不能确认你所安装的系统是否已经存在这些包,依然可以用系统自带的包管理工具安装一次,就算依赖包已经存在,最多不进行实际安装而已,不会对系统造成任何负面影响。以包管理工具安装HAProxy所需的依赖指令如下:
#Rocy 9 ,Centos 9等 dnf install gcc openssl-devel pcre-devel #Debian 及 Ubuntu等 apt install gcc openssl-devel |
4)编译安装HAProxy
HAProxy源码提供了一个安装文档“INSATLL”,在安装之前,可预先阅读这个文件,了解一个大概,避免一上来就根据以往的习惯,执行“./configure”。HAProxy源码包里,没有“configure”这个脚本文件,而是有一个配置好的“Makefile”文件,系统命令执行指令“make”加所需的选项或参数,就可以进行编译了。编译、安装HAProxy源码的完整指令如下:
cd haproxy-2.6 make ARCH=x86_64 TARGET=linux-glibc USE_PCRE=1 USE_OPENSSL=1 USE_ZLIB=1 USE_PCRE_JIT=1 #指定安装路径/usr/local/haproxy make install PREFIX=/usr/local/haproxy |
编译与安装过程如无报错,表明方法是正确的。进入软件安装目录”/usr/local/haproxy”,执行指令“sbin/haproxy -vv”验证安装好的HAProxy所需的功能是否被支持(如图5-10所示)。
图5- 10