haproxy安装配置及haproxy+keepalived配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了haproxy安装配置及haproxy+keepalived配置相关的知识,希望对你有一定的参考价值。

一、haproxy安装
操作系统:centos6.5
haproxy是一个提供高可用、负载均衡的开源的代理服务器,haproxy安装可以源码安装也可以yum安装,本文采用yum安装,yum安装非常便捷。挂载本地镜像,yum安装haproxy。

yum -y install haproxy

技术分享图片
安装成功,是不是非常方便。查询haproxy版本
技术分享图片
二、haproxy配置
查看haproxy配置文件,本文配置文件已做了部分修改。
本文已经搭建好两台简单的web服务器,就是nginx的基础页面,但略有不同
web服务器1:192.168.174.128(hostname:www.jzz.nginx 默认页面:helloworld)
Web服务器2:192.168.174.131(hostname:www.jzztest.org 默认页面:nginx安装后默认页面)

cat /etc/haproxy/haproxy.cfg | egrep -v ‘(#|^$)‘

技术分享图片

global    -----------------------------------------------------------------全局配置
    log         127.0.0.1 local2   ---------------日志输出配置
    chroot      /var/lib/haproxy   --------------haproxy工作目录
    pidfile     /var/run/haproxy.pid  ----------haproxy的pid目录
    maxconn     4000  -------------------------最大连接数(默认配置)
    user        haproxy  -------------------------运行haproxy用户
    group       haproxy -------------------------haproxy所属组
    daemon        --------------------------------后台启动
    stats socket /var/lib/haproxy/stats  ----这个不知道,后续补充
defaults    ----------------------------------------------------------------默认配置
    mode                    http   -------------------------默认模式mod{tcp|http|health}
    log                     global  -------------------------日志系统与global段相同
    option                  httplog  -----------------------日志类别采用httplog
    option                  dontlognull  -----------------不记录健康检查日志
    option http-server-close  ------------------------每次请求完毕后主动关闭http通道
    option forwardfor       except 127.0.0.0/8 ----后端服务器需要获得客户端真实ip需要配置的参数
    option                  redispatch   ------------------当请求的服务器挂掉之后强行切换到健康的服务器
    retries                 3          -------------------------3次连接服务器失败后确定服务器不可用
    timeout http-request    10s     -------------------默认http请求超时时间(可优化)
    timeout queue           1m    ----------------------默认队列超时时间(可优化)
    timeout connect         10s  ----------------------默认连接超时时间(可优化)
    timeout client          1m --------------------------默认客户端超时时间(可优化)
    timeout server          1m   -----------------------默认服务器超时时间(可优化)
    timeout http-keep-alive 10s  -------------------默认持久连接超时时间(可优化)
    timeout check           10s  -----------------------默认心跳检测超时时间(可优化)
    maxconn                 3000      -------------------最大连接数,不要超过全局配置最大连接数
listen stats_auth    ----------------------------------------------------监控页面及监听端口混合配置,做的有点差,仅做参考
    bind 192.168.174.130:8000       ------------------------绑定监控页面监听端口
    stats uri /status     ------------------------------------------haproxy监控页面
    stats auth admin:westos       ----------------------------配置监控页面账号密码登录
    stats refresh 5s    ------------------------------------------监控页面自动刷新时间
    stats hide-version       ------------------------------------隐藏监控页面haproxy版本号,保障安全
    listen www.jzz.nginx *:8088               ----------------监听的实例名称、地址和端口,可配置多个
    server web1 192.168.174.128:80 cookie app1inst1 check inter 2000 rise 2 fall 5 -----后端web服务器ip及其他配置
    listen www.jzztest.org *:8089             ----------------监听的实例名称、地址和端口,可配置多个
    server web2 192.168.174.131:80 cookie app1inst2 check inter 2000 rise 2 fall 5 -----后端web服务器ip及其他配置
    listen localhost.localdomain *:80    -------------------
    balance roundrobin                  ------------------------负载均衡算法(有roundrobin、static-rr、leastconn、source、url、url_param、hdr、rdp_cookie)
frontend  main *:5000           -----------------------------------------------------------------------frontend前端配置,为haproxy安装时就有,能力有限,不再解释
    acl url_static       path_beg       -i /static /images /javascript /stylesheets
    acl url_static       path_end       -i .jpg .gif .png .css .js
    use_backend static          if url_static
    default_backend             app
backend static       ----------------------------------------------------------------------------------backend前端配置,为haproxy安装时就有,能力有限,不再解释
    balance     roundrobin
    server      static 127.0.0.1:4331 check
backend app        ----------------------------------------------------------------------------------backend前端配置,为haproxy安装时就有,能力有限,不再解释
    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服务

service haproxy start

访问haproxy监控页面端口下的/status,为了安全起见,第一次登陆需要账号密码,账号密码就是配置文件里设置的
技术分享图片
进入监控页面,在这里可以看到我们的配置
技术分享图片
访问haproxy服务器ip的8088端口,可以发现跳转到了Web服务器1
技术分享图片
访问haproxy服务器ip的8089端口,可以发现跳转到了Web服务器2
技术分享图片
也可以设置域名访问到不同web服务器,但要在本地host绑定域名ip对应关系。
haproxy服务器配置成功
个人总结:haproxy安装非常方便,但haproxy更多的是要学会haproxy的调优及各种配置,本文只讲解了部分配置,因本人能力有限,还有许多配置未涉及到,但我后期会继续学习,后续再做补充。

以上是关于haproxy安装配置及haproxy+keepalived配置的主要内容,如果未能解决你的问题,请参考以下文章

002.HAProxy安装及常见配置

HaProxy介绍,安装及配置

51-高性能负载均衡应用Haproxy-安装及配置案例

Haproxy安装配置及日志输出问题

Nodejs负载均衡:haproxy,slb以及node-slb

HAproxy安装和配置