HAProxy介绍

  HAProxy是高性能TCP(第四层)/HTTP(第七层)反向代理负载均衡服务器。(The Reliable, High Performance TCP/HTTP Load Balancer)

HAProxy安装部署

查看列表

$ yum list | grep haproxy

yum安装

$ yum -y install haproxy

查看详细信息

$ rpm -qi haproxy

查看帮助

[root@testHaproxy ~]# haproxy --help
HA-Proxy version 1.5.18 2016/05/10
Copyright 2000-2016 Willy Tarreau <willy@haproxy.org>Usage : haproxy [-f <cfgfile>]* [ -vdVD ] [ -n <maxconn> ] [ -N <maxpconn> ][ -p <pidfile> ] [ -m <max megs> ] [ -C <dir> ]-v displays version ; -vv shows known build options.-d enters debug mode ; -db only disables background mode.-dM[<byte>] poisons memory with <byte> (defaults to 0x50)-V enters verbose mode (disables quiet mode)-D goes daemon ; -C changes to <dir> before loading files.-q quiet mode : don't display messages-c check mode : only check config files and exit-n sets the maximum total # of connections (2000)-m limits the usable amount of memory (in MB)-N sets the default, per-proxy maximum # of connections (2000)-L set local peer name (default to hostname)-p writes pids of all children to this file-de disables epoll() usage even when available-dp disables poll() usage even when available-dS disables splice usage (broken on old kernels)-dG disables getaddrinfo() usage-dV disables SSL verify on servers side-sf/-st [pid ]* finishes/terminates old pids. Must be last arguments.

修改配置文件

$ vim /etc/haproxy/haproxy.cfg

指定配置文件

$ haproxy -f /etc/haproxy/haproxy.cfg -c

启动haproxy

$ service haproxy start

查看状态

$ service haproxy status

$ /bin/systemctl status haproxy.service

HAProxy配置文件

  HAProxy配置文件主要由全局设定和代理设定两部分组成,包含5个域:global、default、frontend、backend、listen。

global

# 全局配置,定义haproxy进程的工作特性和全局配置
globallog         127.0.0.1 local2chroot      /var/lib/haproxy #chroot运行的路径pidfile     /var/run/haproxy.pid #haproxy pid的存放位置maxconn     65536 #最大连接数nbproc      10ulimit-n    200000 user        haproxy #haproxy的运行用户 group       haproxy #haproxy的运行用户的所属组daemon #守护进程的方式在后台工作# turn on stats unix socketstats socket /var/lib/haproxy/stats

  全局配置,通常是一些进程级别的配置,与操作系统相关。

default

#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaultsmode                    http #默认使用的七层协议,也可以是tcp四层协议,如果配置为health,则表示健康检查,返回oklog                     globaloption                  tcplog #详细记录tcp日志option                  redispatchoption                  dontlognull #不记录健康检查的日志信息option                  forwardfor       retries                 3 #重试次数为3次,失败3次以后则表示服务不可用timeout http-request    5s #http请求超时时间,客户端建立连接5s但不请求数据的时候,关闭客户端连接timeout queue         10s #等待最大时间,表示等待最大时长为10stimeout connect         10s #连接超时时间,表示客户端请求转发至服务器所等待的时长为10stimeout client          30m #客户端超时时间,表示客户端非活跃状态的时间为30mintimeout server          30m #服务器超时时间,表示客户端与服务器建立连接后,等待服务器的超时时间为30mintimeout http-keep-alive 10s #持久连接超时时间,表示保持连接的超时时长为10stimeout check           10s #心跳检测超时时间,表示健康状态监测时的超时时间为10s

  默认参数配置,主要是涉及的公共配置,在defaults中一次性添加。frontendbackendlisten未配置时,都可以默认defaults中的参数配置。若配置了,会覆盖。

frontend & backend

frontend  testbind *:8082default_backend   testoption httplogacl user-core path_beg /test/v1/user/use_backend user-core_server if  user-core
# test
backend testmode httpbalance   roundrobinserver node1 10.xxx.xxx.1:7000 check port 7000 inter 5000 rise 5 fall 5server node2 10.xxx.xxx.2:7000 check port 7000 inter 5000 rise 5 fall 5# user-core_server
backend user-core_servermode httpbalance  roundrobinserver   node1  10.xxx.xxx.1:7001 check port 7001 inter 5000 rise 5 fall 5server   node2  10.xxx.xxx.2:7001 check port 7001 inter 5000 rise 5 fall 5 backupfrontend haproxy_statis_frontbind                     *:8081mode                     httpdefault_backend          statis_haproxybackend statis_haproxymode                     httpbalance                  roundrobinstats                    uri           /haproxy/statsstats                    auth          haproxy:zkK_HH@zzstats                    refresh       30sstats                    show-nodestats                    show-legendsstats                    hide-version

  frontend可以看作是前端接收请求的部分,内部指定后端;
  backend可以看作是后端服务接收请求的部分;

frontend中acl规则详解

1)语法:acl 自定义的acl名称 acl方法 -i [匹配的路径或文件]
其中:

  • acl:是一个关键字,表示定义ACL规则的开始,后面跟自定义acl名称;
  • -i:忽略大小写,后面跟匹配的路径或者文件的正则表达式;

2)语法:use_backend backend实例名称 if acl规则

  • use_backend:后面跟backend实例名;
  • if:后面跟acl规则名称,表示如果满足acl规则,则请求backend实例;

3)示例:

   acl user-core path_beg /test/v1/user/use_backend user-core_server if  user-core

表示符合http://ip:port/test/v1/user会转发user-core_server实例服务;

listen

listen admin_statsbind    *:8080  #监听端口mode    httpoption  httploglog     globalstats   enable  #统计接口启用开关maxconn 10stats   refresh 30s  #页面刷新时长stats   uri /haproxy?stats  #haproxy ui访问后缀stats   realm haproxy  #认证时的realm,作为提示用的stats   auth admin:admin  #认证用户名和密码stats   hide-version  #隐藏HAProxy版本号stats   admin if TRUE  #管理界面只有认证通过后才能在ui上进行管理

  listen是`frontend和backend的组合,haproxy的监控ui可以通过这个进行配置。

haproxy页面

通过上述的listen配置后,重启haproxy。
$ service haproxy restart
通过`http://ip:8080/haproxy?stats访问

输入认证信息:用户名:admin,密码:admin

高可用HAProxy——yum安装部署配置使用相关推荐

  1. hadoop之HDFS HA(高可用)架构安装部署

    前言 再看本文章之前,请先确保已经看过CentOS下hadoop的分布式搭建和分布式协作服务框架Zookeeper安装部署两篇文章,因为本文章是建立在它们基础之上的. 一.HA相关介绍 1.为什么出现 ...

  2. 基于zookeeper(集群)+LevelDB的ActiveMq高可用集群安装、配置、测试

    Linux 环境 zookeeper集群安装.配置.测试https://blog.csdn.net/weixin_40816738/article/details/100576259 MQ集群部署规划 ...

  3. 高可用网络架构的部署

    2 案例2:部署LNMP动态网站 2.1 问题 部署LNMP动态网站,实现以下目标: 安装LNMP平台相关软件 配置Nginx实现动静分离 配置数据库,创建账户与密码 上线Wordpress代码 使用 ...

  4. k8s1.18多master节点高可用集群安装-超详细中文官方文档

    kubernetes安装系列文章 kubernetes1.17.3安装-超详细的安装步骤 安装kubernetes1.17.3多master节点的高可用集群 k8s1.18单master节点高可用集群 ...

  5. Open-Falcon安装部署配置说明文档

    @(架构师之路) Open-Falcon安装部署配置说明文档 欢迎关注作者简书 csdn传送门 文章目录 Open-Falcon安装部署配置说明文档 单机安装 环境准备 1. 环境准备 2. 从源码编 ...

  6. HBase 高可用集群整合 Phoenix 配置

    HBase 高可用集群整合 Phoenix 配置 接上文:HBase 高可用集群配置 命令行参考:https://blog.csdn.net/ubuntu64fan/article/details/8 ...

  7. 记一次 Centos7 yum 安装、配置 PgAdmin4

    一.基础信息说明 官网:https://www.pgadmin.org/ 下载:https://www.pgadmin.org/download/pgadmin-4-windows/ 阿里帮助文档:h ...

  8. mysql主从复制安装部署配置操作步骤及主从库宕机处理办法

    mysql主从复制安装部署配置操作步骤及主从库宕机处理办法 大家好,我是酷酷的韩~ 1.前期准备 (1)首先需要准备至少两台mysql 这里方便演示,用了两台虚拟机 环境是centos7 主: 172 ...

  9. 基于keepalived实现haproxy高可用的双主模型配置

      Keepalived会主动检测web服务器,把有故障的服务器从系统中剔除,在服务器修复以后会重新加入到服务器群众,不影响服务器的正常工作 VRRP:虚拟路由冗余协议   它把一个虚拟路由器的责任动 ...

最新文章

  1. 电信业务支撑报表开发工具解决方案
  2. ue4导入倾斜摄影_倾斜摄影入门必学|Context Capture建模软件工作流程
  3. 统一建模语言UML轻松入门系列
  4. 逻辑回归评分卡实现和评估
  5. camera 输入数据格式 lcd 显示原理
  6. LeetCode-Add Binary
  7. 高等数学下-赵立军-北京大学出版社-题解-练习12.2
  8. 美国 AI 博士爆料:掌握这9个要点,赚钱不再艰难
  9. 人生不值得,我在用python.1_关于python
  10. python 写一个计算器_Python | 写个计算器吧
  11. Uva 1471 Defense Lines(LIS变形)
  12. “华为杯”——中国研究生数学建模大赛相关解读及LaTeX模版、算法、真题、优秀论文等相关资源分享(超详细)
  13. 企信下载的文件在哪里_iTunes下载的固件在哪 iTunes固件下载地址【介绍】
  14. python最好用的助手_让Python爬虫变成你的好助手
  15. LD3320语音识别模块:LDV7模块使用详解
  16. 浙江污水处理厂数字孪生平台建模_三维激光扫描_吉优赛维三维可视化管理平台_三维建模_3D模型
  17. 【概率】COGS1487 麻球繁衍
  18. Android系统下 SD卡各文件夹
  19. 分布式事务操作之Spring+JTA
  20. 脑启发遥感解译:一个全面的调查

热门文章

  1. OpenCV:Mat数据类型/16to8bit/RECT/画线填充
  2. Git/Gitee创建仓库添加文件【1】
  3. AngularJS-模型和控制器
  4. mui案例:导航栏 颜色渐变
  5. centos mysql导出数据库命令_在centos(linux)下用命令导出mysql数据库数据
  6. 高精度矢量汉字的一种填充方法_惯导解算数学基础4(等效旋转矢量解,圆锥补偿解)...
  7. 运营级IOS一键签名程序源码 支持app超级签名一键分发平台
  8. python描述器 有限状态机_笨办法学 Python · 续 练习 30:有限状态机
  9. 苹果CMS10 资源网模板
  10. 小程序影视APP/追剧吧/脱离微擎/可用火车头采集小程序影视