您的位置:首页 > 其它

haproxy初步使用

2018-04-02 19:15 92 查看

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