Haproxy安装部署

Haproxy 简介

软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第

三方应用的软负载实现。LVS就是基于Linux操作系统实现的一种软负载,HAProxy就

是开源的并且基于第三应用实现的软负载。

HAProxy相比LVS的使用要简单很多,功能方面也很丰富。当前,HAProxy支持两种主

要的代理模式:"tcp"也即4层(大多用于邮件服务器、内部协议通信服务器等),

和7层(HTTP)。在4层模式下,HAproxy仅在客户端和服务器之间转发双向流

量。7层模式下,HAProxy会分析协议,并且能通过允许、拒绝、交换、增加、修改或

者删除请求(request)或者回应(response)里指定内容来控制协议,这种操作要基于特定

规则。

详情可以在HAProxy官方网站(http://haproxy.1wt.eu)可以下载配置说明文

档(configuration.txt)和架构文件(architecture.txt)作为参考。

安装部署Haproxy

1、到官方http://haproxy.1wt.eu/download/下载HAProxy软件包解压并编译安装

wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.20.tar.gz

tar -xzf haproxy-1.4.20.tar.gz
cd haproxy-1.4.20
make TARGET=linux26 PREFIX=/usr/local/haproxy install

安装完成后会在安装目录下生成doc ,sbin ,share三个文件夹。解压的源码文件也可以删除掉。

[root@LNMP_Server haproxy-1.4.20]# cd /usr/local/haproxy/
[root@LNMP_Server haproxy]# ls
docsbinshare

2、创建配置文件

cd /usr/local/haproxy
mkdir conf
cd conf
vi haproxy.cfg
global
user haproxy
group haproxy
chroot /usr/local/haproxy
quiet
nbproc 1
daemon
maxconn 65535
pidfile /usr/local/haproxy/haproxy.pid
 
defaults
log     global
mode    http
option  httplog
option  dontlognull
log 127.0.0.1 local3 info
log 127.0.0.1 local3 err
retries 3
option redispatch
stats enable
maxconn 65535
stats hide-version
stats uri  /haproxy-stats
stats realm Haproxy\ statistics
stats auth haproxy:123456
stats refresh 30s
contimeout 5000
clitimeout 50000
srvtimeout 50000
 
frontend http-in
        bind *:80
        mode http
        acl 192.168.3.123 hdr_reg(host) -i 192.168.3.123
        use_backend web_test if 192.168.3.123
        default_backend web_test
 
backend web_test
        balance source
        stats refresh 30s
        option httpclose
        option forwardfor
        option httpchk GET /noc.gif HTTP/1.0 
        server webapp1 192.168.3.123:8080 weight 1 check inter 2000 rise 2 fall 3
        server webapp2 192.168.3.123:8081 weight 1 check inter 2000 rise 2 fall 3
        server webapp3 192.168.3.123:8082 weight 1 check inter 2000 rise 2 fall 3

 

3、修改haproxy属主属组权限

useradd haproxy -s /sbin/nologin -M
chown -R haproxy.haproxy /usr/local/haproxy/

 

4、启动haproxy

[root@LNMP_Server conf]# /usr/local/haproxy/sbin/haproxy-f /usr/local/haproxy/conf/haproxy.cfg 
[root@LNMP_Server conf]# ps -ef |grep haproxy
haproxy430610 18:12 ?00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/conf/haproxy.cfg
root430835060 18:12 pts/000:00:00 grep haproxy
[root@LNMP_Server conf]# lsof -i:80
COMMANDPIDUSERFDTYPE DEVICE SIZE/OFF NODE NAME
haproxy 4306 haproxy4uIPv4192960t0TCP *:http (LISTEN)

 

5、配置日志

创建日志目录

mkdir /usr/local/haproxy/logs -p

修改操作系统的日志配置

HAProxy可以收集本机及其他后端服务器日志,但是需要在HAProxy和操作系统上作一些配置。

使用root账户首先修改/etc/sysconfig/syslog文件,将SYSLOGD_OPTIONS="-m 0”

修改为SYSLOGD_OPTIONS="-m 0 -r -x",支持收集远程服务器日志。

sed -i 's#SYSLOGD_OPTIONS=\"-m 0\"#SYSLOGD_OPTIONS=\"-m 0 -r -x\"#g' /etc/sysconfig/syslog

然后修改/etc/syslog.conf,增加如下语句:

Local3.* /usr/local/haproxy/logs/haproxy.log // haproxy.log地址代表了需要存储

日志的地址,其中local0这个级别要和haproxy.cfg配置的log级别一样

echo "local3.* /usr/local/haproxy/logs/haproxy.log" >>/etc/syslog.conf

执行

service syslog restart

重新启动系统日志器

 

 

访问http://192.168.3.123/haproxy-stats查看haproxy的状态页面

haproxy添加映射 haproxy部署_操作系统

Haproxy的三种算法

balance source
appsession JSESSIONID len 64 timeout 5h request-learn
cookieSESSION_COOKIEinsert indirect nocache

 

注:你可能看到上面的这个页面里面有报红,是因为haproxy会实时监测站点目录下的noc.gif 这个文件,如果没有就创建一个,

haproxy相关配置行

option httpchk GET /noc.gif HTTP/1.0

 


转载于:https://blog.51cto.com/zhangjie/1262362