haproxy初步使用

HAProxy初步使用

简介

HAProxy提供负载均衡,以及基于tcp和http应用的代理.它是一种快速,免费,且可靠的解决方案
HAProxy的性能及稳定性虽不及lvs,不过在功能上却要优于lvs很多.HAProxy和lvs均可配合keepalived实现高可用


安装

在centos7上,HAProxy可以用yum安装和源码包安装两种方式

#yum安装方式
]# yum install haproxy

#源码包安装方式
]# wget http://www.haproxy.org/download/1.8/src/haproxy-1.8.5.tar.gz
]# tar -zxvf haproxy-1.8.5.tar.gz
]# cd haproxy-1.8.5/
]# ./configure --prefix=/usr/share/haproxy
]# make && make install

配置

haproxy的主配置文件是/etc/haproxy/haproxy.cfg.其中包括global全局配置段和proxy相关配置段,如”defaults”,”listen”,”frontend”,”backend”

]# cat /etc/haproxy/haproxy.cfg
global//全局配置
    log         127.0.0.1 local2 //日志存放方式,需调用日志软件如rsyslog

    chroot      /var/lib/haproxy //haproxy的工作目录,可以提升haproxy的安全级别,必须要求空目录且任何用户不能有写权限
    pidfile     /var/run/haproxy.pid //指定运行时pid文件
    maxconn     4000 //最大连接数,默认4000,若不够可增大
    user        haproxy
    group       haproxy
    daemon //以守护进程方式运行,若不指定则在前端显式运行

    stats socket /var/lib/haproxy/stats //套接字文件

defaults //为所有其他配置段提供默认参数
    mode                    http //设定实例的运行模式或协议,可选tcp
    log                     global //为每个实例启用事件和流量日志
    option                  httplog
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000 //设定一个前端的最大并发连接数

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  main *:5000
    acl url_static       path_beg       -i /static /images /javascript /stylesheets //定义acl,名称为url_static,规则为uri的首部,忽略大小写,匹配/static...
    acl url_static       path_end       -i .jpg .gif .png .css .js //定义acl,名称为url_static,规则为ui的尾部,忽略大小写,匹配.jpg...

    use_backend static          if url_static //如果匹配url_static,则使用static后端服务器
    default_backend             app //默认使用app后端服务器

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static
    balance     roundrobin //定义调度方式为轮询
    server      static 127.0.0.1:4331 check //定义后端服务器,名称为static,启用健康状态检测

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
    balance     roundrobin
    server  app1 127.0.0.1:5001 check
    server  app2 127.0.0.1:5002 check
    server  app3 127.0.0.1:5003 check
    server  app4 127.0.0.1:5004 check

实验

现对haproxy进行最简单的使用,使用haproxy负载均衡后端的两台web服务器

  • 环境
    node1:192.168.10.201,调度器
    node2:192.168.10.203,web服务器1
    node3:192.168.10.204,web服务器2
    在node1上安装haproxy,node2和node3上安装httpd

  • 配置
    修改node1上haproxy的配置文件(只需修改frontend,backend,并删除listen即可)

    ]# vim /etc/haproxy/haproxy.cfg
    frontend  main *:80
    default_backend             webservers
    
    backend webservers
        balance     roundrobin
        server  web1 192.168.10.203:80 check
        server  web2 192.168.10.204:80 check
    
  • 现象

    ]# curl 192.168.10.201
    welcome to web1
    ]# curl 192.168.10.201
    welcome to web2
    ]# curl 192.168.10.201
    welcome to web1
    ]# curl 192.168.10.201
    welcome to web2
    

话外

HAProxy的官网网站是http://www.haproxy.org/,不过国内似乎进不去?
若想查看HAProxy的详细配置介绍,可以访问官方文档http://cbonte.github.io/haproxy-dconv

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值