配置HAProxy实现负载均衡

一、haproxy介绍

HAProxy是一个使用C语言编写的自由及开放源代码软件[1],其提供高可用性、负载均衡,以及基于TCP和HTTP的应用程序代理。
HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

haproxy 的配置文件由两部分组成:全局设定和对代理的设定,共分为五段:global,defaults,frontend,backend,listen。

二、安装haproxy

去haproxy下载源码包上传到服务器或者wget

然后解压

[root@mymaster yasuobao]# tar -zxvf haproxy-2.0.1.tar.gz
[root@mymaster yasuobao]# cd haproxy-2.0.1

编译
[root@mymaster yasuobao]# make TARGET=linux31

这里TARGET参数视centos版本而定,uname -r查看系统版本centos6.X需要使用TARGET=linux26 centos7.x使用linux31
安装

[root@mymaster yasuobao]# make install PREFIX=/usr/local/haproxy

创建conf目录
[root@mymaster yasuobao]# mkdir /usr/local/haproxy/conf

复制文件

[root@mymaster yasuobao]#  cp examples/option-http_proxy.cfg /usr/local/haproxy/conf/haproxy.cfg
[root@mymaster yasuobao]#  cd /usr/local/haproxy/conf

编辑配置文件

[root@mymaster conf]#  vim haproxy.cfg
global
    log 127.0.0.1 local0 info
    maxconn 4096
    user nobody
    group nobody
    daemon
    nbproc 1
    pidfile /usr/local/haproxy/logs/haproxy.pid
defaults
    mode http
    retries 3
    timeout connect 10s
    timeout client 20s
    timeout server 30s
    timeout check 5s
frontend www
    bind *:80
    mode        http
    option      httplog
    option      forwardfor
    option      httpclose
    log global
    #acl host_www       hdr_dom(host)   -i      www.zb.com
    #acl host_img       hdr_dom(host)   -i      img.zb.com

    #use_backend htmpool        if      host_www
    #use_backend imgpool        if      host_img
    default_backend     htmpool
backend htmpool
    mode        http
    option      redispatch
    option      abortonclose
    balance     static-rr
    cookie      SERVERID
    option      httpchk GET /index.html
    server      myslave02 172.18.74.87:80 cookie B weight 3 check inter 2000 rise 2 fall 3
    server      myslave 172.18.74.119:80 cookie A weight 3 check inter 2000 rise 2 fall 3

listen admin_stats
    bind  0.0.0.0:9188
    mode  http
    log   127.0.0.1 local0 err
    stats refresh 30s
    stats uri /haproxy-status
    stats realm welcome login\ Haproxy
    stats auth admin:admin123
    stats hide-version
    stats admin if TRUE

启动haproxy

[root@mymaster conf]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg

然后在后端服务器编辑index.html

[root@myslave html]# cat index.html
this is 119 html

[root@myslave02 html]# cat index.html
this is 87 html

curl检查haproxy是否正常工作
配置HAProxy实现负载均衡

浏览器访问172.18.74.59:9188/haproxy-status,用户名admin,密码admin123,登陆。可以看到haproxy的工作状态
配置HAProxy实现负载均衡

猜你喜欢

转载自blog.51cto.com/13670314/2415398