Linux系统负载均衡软件之haproxy+apache

    hproxy提供高可用性、负载均衡和基于TCP和HTTP应用的反向代理,特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接,并且它的运行模式使得它可以很简单安全的整合到架构中, 同时可以保护你的web服务器不被暴露到网络上.

 

环境规划:

tong1:  192.168.1.247   haproxy

tong2:  192.168.1.248   web1

tong3:  192.168.1.249   web2

 

1.网络配置

tong1节点:

[root@tong1 ~]# hostname
tong1
[root@tong1 ~]# ifconfig | grep Mask
          inet addr:192.168.1.247  Bcast:192.168.1.255  Mask:255.255.255.0
          inet addr:127.0.0.1  Mask:255.0.0.0
[root@tong1 ~]# vim /etc/hosts

192.168.1.247 tong1
192.168.1.248 tong2
192.168.1.249 tong3

[root@tong1 ~]#

 

tong2节点和tong3节点一样配置

 

2.在tong1节点安装haproxy软件,开启haproxy日志功能

[root@tong1 ~]# yum install haproxy -y

[root@tong1 ~]# vim /etc/sysconfig/rsyslog           --添加-r参数记录haproxy日志

SYSLOGD_OPTIONS=" -r -c 2"

[root@tong1 ~]# vim /etc/rsyslog.conf               --定义日志存放的路径

local2.*                       /var/log/haproxy.log

[root@tong1 ~]# /etc/init.d/rsyslog  restart
Shutting down system logger:                               [  OK  ]
Starting system logger:                                    [  OK  ]
[root@tong1 ~]#

[root@tong1 ~]# cd /etc/haproxy/
[root@tong1 haproxy]# vim haproxy.cfg

global

    log         127.0.0.1 local2              --开启日志功能

    chroot      /var/lib/haproxy            --运行的路径
    pidfile     /var/run/haproxy.pid        --pid文件存放处
    maxconn     4000                   --最大连接数
    user        haproxy                  --所属运行的用户
    group       haproxy                 --所属运行的用户组
    daemon                                --后台运行服务

 

defaults
    mode                    http               --处理的模式(http是七层,tcp是四层)
    log                     global               --启用全局日志记录
    option                  httplog             --日志类别http格式
    option                  dontlognull        --不记录健康检查日志
    option http-server-close              
    option forwardfor       except 127.0.0.0/8    
    option                  redispatch        --serverId对应的服务器挂掉后强制定向到其它服务器    

    retries                 3                     --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

 

listen admin_status           --自定义监听名,任意取
    bind 0.0.0.0:80            --绑定端口
    mode http                   --模式
    log 127.0.0.1 local3 err         --记录错误日志
    stats refresh 20s                 --每隔20s刷新

    stats hide-version                --隐藏haproxy版本信息

    stats uri /haproxy-stats        --在域名后面添加/haproxy-stats可以查看haproxy监控状态

    stats auth haproxy:system    --用户名和密码    stats hide-version
    stats admin if TRUE               --可以手动启动和停止服务

 

frontend  main_status      --定义acl规则

    bind 0.0.0.0:80       --绑定到80端口

    mode http

    log global

    option httplog

    option forwardfor

    acl web1 hdr_reg(host) -i ^(www.itnihao.cn|ww1.itnihao.cn)$   --匹配www.itnihao.cn和ww1.itnihao.cn两个域名就放到web1变量中

    acl web2   url_sub          -i  killall=       --请求中包含killall= 就放入到web2变量中

    acl web3   path_beg       -i  /static /images /javascript /stylesheets   

 

    use_backend  server_web1 if web1     --满足web1变量的就丢到server_web1里面的虚拟主机

    use_backend  server_web2 if web2     --满足web1变量的就丢到server_web1里面的虚拟主机

    use_backend  server_web3 if web3

    default_backend server_web4             --都不满足就丢到server_web4里面的虚拟主机

 

backend server_web3

    mode http
    balance     roundrobin

    option httpchk GET /test.html     --定义首页 址

    server  tong2 192.168.1.248:81 check inter 1500 rise 3 fall 3 weight 1    --后端服务器,inter 1500是检查心跳频率,rise 3 是3次正确可用,fall 3是3次失败不可用,weight 1是权重

    server  tong3 192.168.1.249:82 check inter 1500 rise 3 fall 3 weight 1

 

backend server_web4

    mode http
    balance     roundrobin

    option httpchk GET /index.html

    server  tong2 192.168.1.248:80 check inter 1500 rise 3 fall 3 weight 1

    server  tong3 192.168.1.249:80 check inter 1500 rise 3 fall 3 weight 1

本文出自 “一起走过的日子” 博客,请务必保留此出处http://tongcheng.blog.51cto.com/6214144/1597364

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。