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
本文来自博客园,作者:银河系派件员,转载请注明原文链接:https://www.cnblogs.com/zhaojli/p/16862671.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?