千家信息网

HaProxy安装和常用命令

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,安装haproxy对于 haproxy 安装,网上有大量的资源可以参考,最常见的是使用 yum 和 编译安装两种方式。yum 安装 haproxyCentOS自带了haproxy,但可能版本比较老。可
千家信息网最后更新 2026年11月03日HaProxy安装和常用命令

安装haproxy

对于 haproxy 安装,网上有大量的资源可以参考,最常见的是使用 yum 和 编译安装两种方式。

yum 安装 haproxy

CentOS自带了haproxy,但可能版本比较老。可以在IUS源上找到稳定版的haproxy。

主要步骤如下:

(1)配置yum源

cat </etc/yum.repos.d/ius-7.repo[ius]name = IUS for Enterprise Linux 7 - $basearchbaseurl = https://repo.ius.io/7/$basearch/enabled = 1repo_gpgcheck = 0gpgcheck = 1gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7[ius-debuginfo]name = IUS for Enterprise Linux 7 - $basearch - Debugbaseurl = https://repo.ius.io/7/$basearch/debug/enabled = 0repo_gpgcheck = 0gpgcheck = 1gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7[ius-source]name = IUS for Enterprise Linux 7 - Sourcebaseurl = https://repo.ius.io/7/src/enabled = 0repo_gpgcheck = 0gpgcheck = 1gpgkey = https://repo.ius.io/RPM-GPG-KEY-IUS-7eof

(2)清理、更新和快速生成 yum 缓存

yum clean allyum updateyum makecache fast

(3)查看下系统中haproxy版本有哪些

yum list|grep haproxy

(4)yum安装 haproxy18u

#这里安装 haproxy18u yum install haproxy18u -y

编译安装 haproxy

编译安装haproxy时,可以借助于pcre环境,该环境下编译时借助正则表达式分析编译速度会快很多,但是没有该环境也可以安装。

主要步骤如下:

(1)安装 pcre pcre-devel

yum -y install pcre pcre-devel

(2)创建haproxy运行的用户和组

groupadd -r haproxyuseradd -g haproxy -M -s /sbin/nologin haproxy

(3)编译安装haproxy

#下载地址:http://www.haproxy.org/ #解压:tar zxf haproxy-1.8.23.tar.gz -C /usr/local#编译安装:cd /usr/local/haproxy-1.8.23make TARGET=linux3100 ARCH=x86_64 PREFIX=/usr/local/haproxy USE_PCRE=1make install PREFIX=/usr/local/haproxy

说明⚠️:

make时需要使用TARGET指定内核及版本,可以通过uname -r来查看,版本如下:

- linux22     for Linux 2.2- linux24     for Linux 2.4 and above (default)- linux24e    for Linux 2.4 with support for a working epoll (> 0.21)- linux26     for Linux 2.6 and above- linux2628   for Linux 2.6.28, 3.x, and above (enables splice and tproxy)- solaris     for Solaris 8 or 10 (others untested)- freebsd     for FreeBSD 5 to 10 (others untested)- netbsd      for NetBSD- osx         for Mac OS/X- openbsd     for OpenBSD 5.7 and above- aix51       for AIX 5.1- aix52       for AIX 5.2- cygwin      for Cygwin- haiku       for Haiku- generic     for any other OS or version.- custom      to manually adjust every setting

使用ARCH指定架构,不过ARCH选项可省。使用USE_PCRE=1表示使用PCRE环境编译,加快编译速度。

本文的操作系统内核版本为3.10.0,TARGET指定为 linux2628。我这边使用 linux3100 也没有报错~

编译安装完成后,只有3个目录:doc、share和sbin,sbin里面只有一个haproxy的主程序haproxy。

(4)管理haproxy服务

ln -s /usr/local/haproxy/sbin/haproxy /usr/sbin/haproxycd /usr/local/haproxy-1.8.23/examplescp haproxy.init /etc/rc.d/init.d/haproxycd /etc/rc.d/init.dchmod +x haproxy

(5)设置haproxy相关的配置文件

#创建配置目录mkdir /usr/local/haproxy/conf #创建主配置文件touch /usr/local/haproxy/conf/haproxy.cfg#创建启动脚本配置目录mkdir /etc/haproxy/  #添加配置文件的软连接ln -s /usr/local/haproxy/conf/haproxy.cfg /etc/haproxy/haproxy.cfg #创建日志目录mkdir /usr/local/haproxy/log#创建日志文件touch /usr/local/haproxy/log/haproxy.log#添加软连接ln -s /usr/local/haproxy/log/haproxy.log /var/log/haproxy.log  #拷贝错误页面cp -r /usr/local/haproxy-1.8.23/examples/errorfiles/ /usr/local/haproxy/#给错误页面添加软连接ln -s /usr/local/haproxy/errorfiles /etc/haproxy/errorfiles

(6)配置haproxy.cfg参数

#编辑 haproxy.cfg 配置文件vim /usr/local/haproxy/conf/haproxy.cfg    #---------------------------------------------------------------------# Global settings#---------------------------------------------------------------------global log 127.0.0.1 local2   ###[err warning info debug]  chroot /usr/local/haproxy pidfile /var/run/haproxy.pid ###haproxy的pid存放路径,启动进程的用户必须有权限访问此文件  maxconn 4000     ###最大连接数,默认4000 user haproxy group haproxy daemon       ###创建1个进程进入deamon模式运行。此参数要求将运行模式设置为"daemon"#---------------------------------------------------------------------# common defaults that all the 'listen' and 'backend' sections will # use if not designated in their block#---------------------------------------------------------------------defaults mode http    ###默认的模式mode { tcp|http|health },tcp是4层,http是7层,health只会返回OK log global   ###采用全局定义的日志 option dontlognull  ###不记录健康检查的日志信息 option httpclose  ###每次请求完毕后主动关闭http通道  option httplog   ###日志类别http日志格式  option forwardfor  ###如果后端服务器需要获得客户端真实ip需要配置的参数,可以从Http Header中获得客户端ip  option redispatch  ###serverId对应的服务器挂掉后,强制定向到其他健康的服务器 timeout connect 10000 #default 10 second timeout if a backend is not found timeout client 300000 ###客户端连接超时 timeout server 300000 ###服务器连接超时 maxconn  60000  ###最大连接数 retries  3   ###3次连接失败就认为服务不可用,也可以通过后面设置 ####################################################################listen stats  bind 0.0.0.0:1080   #监听端口   stats refresh 30s   #统计页面自动刷新时间   stats uri /stats   #统计页面url   stats realm Haproxy Manager #统计页面密码框上提示文本   stats auth admin:admin  #统计页面用户名和密码设置   #stats hide-version   #隐藏统计页面上HAProxy的版本信息#---------------------------------------------------------------------# main frontend which proxys to the backends#---------------------------------------------------------------------frontend main bind 0.0.0.0:80 acl url_static path_beg -i /static /p_w_picpaths /javascript /stylesheets acl url_static path_end -i .jpg .gif .png .css .js use_backend static if url_static  ###满足策略要求,则响应策略定义的backend页面 default_backend dynamic   ###不满足则响应backend的默认页面#---------------------------------------------------------------------# static backend for serving up p_w_picpaths, stylesheets and such#---------------------------------------------------------------------backend static balance  roundrobin     ###负载均衡模式轮询 server  static 127.0.0.1:80 check ###后端服务器定义backend dynamic balance roundrobin server   websrv1 192.168.180.9:80 check maxconn 2000 server   websrv2 192.168.180.4:80 check maxconn 2000#---------------------------------------------------------------------# round robin balancing between the various backends#---------------------------------------------------------------------errorfile 403 /etc/haproxy/errorfiles/403.httperrorfile 500 /etc/haproxy/errorfiles/500.httperrorfile 502 /etc/haproxy/errorfiles/502.httperrorfile 503 /etc/haproxy/errorfiles/503.http

(7)启动 haproxy 服务

#haproxy配置文件语法检查haproxy -c -f /usr/local/haproxy/conf/haproxy.cfgConfiguration file is valid #haproxy服务启动systemctl start haproxy#haproxy服务开机自启动chkconfig --add haproxychkconfig haproxy onchkconfig --list|grep haproxy

(8)设置haproxy日志

#编辑/etc/rsyslog.conf 取消注释:$ModLoad imudp $UDPServerRun 514 $ModLoad imtcp $InputTCPServerRun 514 #添加:local2.*                                                /var/log/haproxy.log          

说明⚠️:

以上修改haproxy日志会同时写入到/var/log/haproxy.log和/var/log/messages两个文件里,由于haproxy日志量很多所以只让其写入到/var/log/haproxy.log文件需要修改/etc/rsyslog.conf文件这个配置:

*.info;mail.none;authpriv.none;cron.none                /var/log/messages更改为:*.info;mail.none;authpriv.none;cron.none;local2.none               /var/log/messages      #这样只会写入到/var/log/haproxy.log

修改/etc/sysconfig/rsyslog:

#修改"SYSLOGD_OPTIONS"参数-c 2 使用兼容模式,默认是 -c 5;-r 开启远程日志;-m 0 标记时间戳,单位是分钟,0表示禁用该功能。#完整内容如下# Options for rsyslogd# Syslogd options are deprecated since rsyslog v3.# If you want to use them, switch to compatibility mode 2 by "-c 2"# See rsyslogd(8) for more details#SYSLOGD_OPTIONS=""SYSLOGD_OPTIONS="-c 2 -r -m 0"#SYSLOGD_OPTIONS="-c 2 -r -m 0"&~
#重新启动rsyslog服务systemctl restart rsyslog.service

(9)测试

打开浏览器打开haproxy监控页面,192.168.246.168:1080/stats,账号:admin,密码:admin

查看 haproxy 的log:tail -f /var/log/haproxy.log

扩展

haproxy常用命令:

# 检查配置文件语法haproxy -c -f /etc/haproxy/haproxy.cfg# 以daemon模式启动,以systemd管理的daemon模式启动haproxy -D -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]haproxy -Ds -f /etc/haproxy/haproxy.cfg [-p /var/run/haproxy.pid]# 启动调试功能,将显示所有连接和处理信息在屏幕haproxy -d -f /etc/haproxy/haproxy.cfg# restart。需要使用st选项指定pid列表haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -st `cat /var/run/haproxy.pid`# graceful restart,即reload。需要使用sf选项指定pid列表haproxy -f /etc/haproxy.cfg [-p /var/run/haproxy.pid] -sf `cat /var/run/haproxy.pid`# 显示haproxy编译和启动信息haproxy -vv

参考文档

  • HAproxy(一)安装和配置

  • 安装haproxy和haproxy命令
配置 文件 服务 日志 页面 编译 模式 版本 服务器 统计 信息 参数 环境 目录 客户 客户端 密码 用户 检查 运行 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网高科技 互联网科技园 南京欣网互联网络科技有限公司 科技金融是不是互联网金融 安徽鑫晟辉互联网科技 极限挑战互联网科技 电子科技大学互联网 农村开互联网科技讲堂 互联网科技中介 小米互联网科技园设置 南山科技园互联网公司有哪些 青岛科技大学互联网大赛研究生 深圳市优智互联网科技有限公司 996高科技互联网公司 燊美集互联网科技有限公司 内蒙古九一互联网科技 企晟互联网信息科技有限公司 徐州市互联网科技有限公司 群盈汇互联网科技有限公司 广西泛欧互联网科技有限公司 深圳九邦互联网科技有限公司 金融科技还是互联网 河南真二互联网科技有限公司 互联网金融科技平台 互联网科技咨询 互联网科技产业特征 哈尔滨屹滨互联网科技有限公司 互联网科技扶贫时间 广州百诚互联网科技有限公司官网 陕西云淼互联网科技公司
0