CentOS7编译安装haproxy-2.6.6

创建用户并安装依赖包

# selinux会影响haproxy启动,会有'cannot bind UNIX socket (Permission denied)'的报错,请关闭它除非你知道设置selinux规则
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
setenforce 0
groupadd -r haproxy
useradd -r -g haproxy -s /sbin/nologin -d /var/lib/haproxy -c "haproxy" haproxy
mkdir /var/lib/haproxy
chown -Rf haproxy:haproxy /var/lib/haproxy
yum install make gcc gcc-c++ pcre pcre-devel perl perl-devel systemd systemd-devel zip unzip zlib-devel libtermcap-devel ncurses-devel libevent-devel readline-devel -y

下载安装包并安装

安装OpenSSL

curl -LO https://www.openssl.org/source/openssl-1.1.1s.tar.gz
tar -zxf openssl-1.1.1s.tar.gz && cd openssl-1.1.1s
./config && make && make install
echo '/usr/local/lib64' >> /etc/ld.so.conf.d/local.conf
ldconfig

安装Lua

curl -LO https://www.lua.org/ftp/lua-5.3.6.tar.gz
tar -zxf lua-5.3.6.tar.gz && cd lua-5.3.6
make linux && make install
echo '/usr/local/lib' >> /etc/ld.so.conf.d/local.conf
ldconfig

安装HAProxy

curl -LO https://www.haproxy.org/download/2.6/src/haproxy-2.6.6.tar.gz
tar -zxf haproxy-2.6.6.tar.gz && cd haproxy-2.6.6
# 编译以及安装参数请查看'haproxy-2.6.6/Makefile'
make TARGET=linux-glic \
   USE_GETADDRINFO=1 USE_PCRE=1 USE_OPENSSL=1 USE_LUA=1 USE_EPOLL=1 USE_ZLIB=1 USE_PROMEX=1 USE_SYSTEMD=1 \
   SSL_LIB=/usr/local/lib64 SSL_INC=/usr/local/include/openssl LUA_LIB=/usr/local/lib LUA_INC=/usr/local/include LDFLAGS=-ldl
make install PREFIX=/etc/haproxy SBINDIR=/sbin MANDIR=/usr/share/man DOCDIR=/usr/share/doc
  • USE_PROMEX=1: 开启 Prometheus exporter
  • USE_SYSTEMD=1: 使用systemd管理服务

设置systemd启动

vi /usr/lib/systemd/system/haproxy.service 添加systemd启动文件,内容如下

[Unit]
Description=HAProxy Load Balancer
After=network.target

[Service]
Environment="CONFIG=/etc/haproxy/haproxy.cfg" "PIDFILE=/run/haproxy.pid" "EXTRAOPTS=-S /run/haproxy-master.sock"
ExecStartPre=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS
ExecStart=/usr/sbin/haproxy -Ws -f $CONFIG -p $PIDFILE $EXTRAOPTS
ExecReload=/usr/sbin/haproxy -f $CONFIG -c -q $EXTRAOPTS
ExecReload=/bin/kill -USR2 $MAINPID
SuccessExitStatus=143
KillMode=mixed
Restart=always
Type=notify
LimitNOFILE=65535

StandardOutput=null
StandardError=null

[Install]
WantedBy=multi-user.target

systemctl enable haproxy.service 将haproxy加入到开机自启

haproxy配置

开启Prometheus

frontend  stats
    bind  0.0.0.0:9101
    mode  http
    http-request use-service prometheus-exporter if { path /metrics }
    stats enable
    stats uri /stats
    stats refresh 10s
    stats realm "Haproxy Manager"
    stats auth admin:admin
    stats hide-version
    stats admin if TRUE

更多配置请浏览官方文档 http://docs.haproxy.org/2.6/configuration.html

posted @   银河系派件员  阅读(686)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示