ligvfbxxs 发表于 2015-3-26 09:46:29

HAProxy实现简单的负载均衡

一、HAProxy简介
HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。
HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作

二、拓扑


HAProxy的配置:


[*]配置开启HAProxy的路由转发功能



1
2
3
4
5
6
7
8
   #vi/etc/sysctl.conf
    net.ipv4.ip_forward = 1
   
   # sysctl-p    //执行后看到如下信息
   net.ipv4.ip_forward = 1
   
   #sysctl-a | grep ip_forward   //执行后确保看到如下信息即可
   net.ipv4.ip_forward = 1




2.配置HAProxy的负载均衡

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
global
    log         127.0.0.1 local2

    chroot      /var/lib/haproxy
    pidfile   /var/run/haproxy.pid
    maxconn   4000
    user      haproxy
    group       haproxy
    daemon

    # turn on stats unix socket
    stats socket /var/lib/haproxy/stats

defaults
    mode                  http
    log                     global
    option                  httplog      //开启日志记录功能
    capturerequestheader   <name>len #   //http报文中有要记录的内容
c   captureresponseheader...          //响应报文字段记录日志

    option                  dontlognull    //不记录空白的日志
    option http-server-close
    option forwardfor       except 127.0.0.0/8//在转发时头部插入X-Forwarded-For字段
    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
#---------------------------------------------------------------------
frontendserver192.168.192.194:80//HAProxy监听在192.168.192.194 80端口
    default_backend      app

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend app
    balance   roundrobin
    serverapp1 192.168.112.130:80 checkweight 1
    serverapp2 192.168.112.131:80 check weight 1





3.WEB服务器配置,配置192.168.112.130和131即可,网关无需指向HAProxy,走7层代理,WEB服务器看到得源IP为HAProxy的192.168.112.x的访问。

   4. 测试
   

xiao5 发表于 2015-11-10 22:19:08

6666
页: [1]
查看完整版本: HAProxy实现简单的负载均衡