您的位置:首页 > 其它

haproxy配置详解

2014-09-05 12:25 197 查看
一:haproxy简介:

HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代 理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中,
同时可以保护你的web服务器不被暴露到网络上。

搭建环境:

node1.magedu.com

eth0:172.16.2.1

eth1:192.168.10.10

node2.magedu.com eth0:192.168.10.11

node3.magedu.com eth0:192.168.10.12

注意:node2和node3的默认网关指向192.168.10.10命令为route add default gw 192.168.10.10

其次:在node1节点上要打开网卡之间的转发功能

安装haproxy:

首先在node1上安装haproxy,查看生成的文件列表

其次:分析haproxy的配置文件/etc/haproxy/haproxy.cfg

defaults

二:haproxy负载均衡实例:

修改配置文件/etc/haproxy/haproxy.cfg

然后重启haproxy即:service haproxy restart

也可以直接定义一个listen

listen和frontend,backend可以同时使用,基于不同端口的虚拟主机

启用状态:stats enable

进行访问172.16.2.1/haproxy?stats





haproxy的状态页面一般不允许别人随意查看,因此通过认证进行访问是必要的









基于页面的管理功能:









支持权重:

调度方法:

roundrobin 动态

static-rr 静态

source取决于hash-type

hash-type:map-based 静态调度

hash-type:consistent 动态调度

使用balance uri可以使访问固定到一个后端的服务器上

转发功能redir









只有当node2和node3都停掉时才使用backup









性能相关参数中maxconn的使用

三:haproxy中ACL的使用

定义ACL的语法格式为:

acl <aclname> <criterion> [flags] [operator] <value> ...

<aclname>:ACL名称,区分字符大小写,且其只能包含大小写字母、数字、-(连接线)、_(下划线)、.(点号)和:(冒号);haproxy中,acl可以重名,这可以把多个测试条件定义为一个共同的acl;

<criterion>:测试标准,即对什么信息发起测试;测试方式可以由[flags]指定的标志进行调整;而有些测试标准也可以需要为其在<value>之前指定一个操作符[operator];

[flags]:目前haproxy的acl支持的标志位有3个:

-i:不区分<value>中模式字符的大小写;

-f:从指定的文件中加载模式;

--:标志符的强制结束标记,在模式中的字符串像标记符时使用;

<value>:acl测试条件支持的值有以下四类:

整数或整数范围:如1024:65535表示从1024至65535;仅支持使用正整数(如果出现类似小数的标识,其为通常为版本测试),且支持使用的操作符有5个,分别为eq、ge、gt、le和lt;

字符串:支持使用“-i”以忽略字符大小写,支持使用“\”进行转义;如果在模式首部出现了-i,可以在其之前使用“--”标志位;

正则表达式:其机制类同字符串匹配;

IP地址及网络地址

同一个acl中可以指定多个测试条件,这些测试条件需要由逻辑操作符指定其关系。条件间的组合测试关系有三种:“与”(默认即为与操作)、“或”(使用“||”操作符)以及“非”(使用“!”操作符)。

用例:

用法五:

动静分离







内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: