HAProxy 是一款老而弥坚的 TCP/HTTP 负载均衡,开发相当活跃。 本文将简单介绍 Debian 系统安装 HAProxy 的两种方式,即包管理与编译安装。 Ubuntu 用户也可以参考,没什么区别。
包管理安装 没有特殊需求可以直接通过包管理工具也就是 apt 安装 HAProxy,具体步骤参考 Debian/Ubuntu HAProxy packages 即可。 如果有特殊需求比如启用 TLS 1.3(目前来说 HAProxy 打包组没有启用 TLS 1.3)则需要自行使用 openssl 1.1.1 以上分支编译。 请继续阅读下文我个人的编译过程。每个人需求不同,所以仅供参考。
编译安装 准备工作 依赖 如果个别包提示冲突,可能是因为包来源不一致,此时需要统一使用 backports 或 默认源进行安装。
1 apt install build-essential libpcre2-dev zlib1g-dev libsystemd-dev liblua5.3-dev
OpenSSL 1 2 3 4 5 6 7 wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz tar -xzf openssl-1.1.1a.tar.gz cd openssl-1.1.1a./config --prefix=/opt/openssl-1.1.1a no-shared make && make install cd .. && rm -rf openssl-1.1.1a*
开始编译 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 42 43 44 45 HAPROXY_MAJOR=1.9 HAPROXY_VERSION=1.9.4 CC=clang CPU=native TARGET=linux2628 PREFIX=/usr/local/haproxy cd && mkdir HAProxy && cd HAProxywget -4 ftp://gee.cs.oswego.edu/pub/misc/malloc.c wget -4 "http://www.haproxy.org/download/${HAPROXY_MAJOR} /src/haproxy-${HAPROXY_VERSION} .tar.gz" tar -xzf haproxy-${HAPROXY_VERSION} .tar.gz cd haproxy-${HAPROXY_VERSION} make \ CC=$CC \ CPU=$CPU \ TARGET=$TARGET \ PREFIX=$PREFIX \ USE_DLMALLOC=1 \ USE_PCRE2=1 \ USE_PCRE2_JIT=1 \ USE_THREAD=1 \ USE_PTHREAD_PSHARED=1 \ USE_LIBCRYPT=1 \ USE_GETADDRINFO=1 \ USE_OPENSSL=1 \ USE_LUA=1 \ USE_ZLIB=1 \ USE_TFO=1 \ USE_NS=1 \ USE_SYSTEMD=1 \ DLMALLOC_SRC=../malloc.c \ SSL_LIB=/opt/openssl-1.1.1a/lib \ SSL_INC=/opt/openssl-1.1.1a/include make install PREFIX=$PREFIX install -d /usr/sbin install haproxy /usr/sbin install -d /usr/local/share/man/man1 install -m 644 doc/haproxy.1 /usr/local/share/man/man1 cp -ar $PREFIX /doc/haproxy /usr/local/doc/haproxymkdir -pv /var/lib/haproxycd && rm -rf HAProxy
验证 HAProxy 1 2 which haproxy && haproxy -vv
收工 遇事不决请查阅文档,man haproxy 的话还是让人头大。 建议访问 cbonte ,内有 HAProxy 全家桶。