haproxy

haproxy负载均衡(工作在应用层)

负载均衡选项:

  1、简单的轮询,balance roundrobin;

  2、根据请求的源IP,balance source;

  3、根据请求的uri,balance uri;

  4、根据请求RUL中的参数,balance url_param。

COOKIE 选项:

  cookie JSESSIONID prefix :如果客户端只支持一个cookie,并且服务器上的应用程序已经对返回设置了cookie,HAProxy设置此选项可以改写应用程序设置的cookie信息,把服务器的信息添加到原cookie中去。

  cookie SERVERID indirect :HAProxy会删除添加的cookie信息,避免此cookie信息发送到服务器。

  cookie SERVERID rewrite :要不要记录cookie信息。

  cookie SERVERID insert :

  cookie SERVERID insert nocache :

  cookie SERVERID insert postonly :

#yum -y install haproxy

#vim /etc/haproxy/haproxy.cfg

frontendbackend删除,添加以下内容:

listen stats     //访问健康性检查(http://ip:1080/stats)

       bind ip:1080   #监听端口

       stats refresh 30s   #统计页面自动刷新时间

       stats uri /stats   #统计页面url

       stats realm Haproxy Manager #统计页面密码框上提示文本

       stats auth admin:admin  #统计页面用户名和密码设置

       stats hide-version   #隐藏统计页面上HAProxy的版本信息

listen webserver  ip:80    //配置调度

    cookie SERVERID rewrite    //要不要记录cookie信息

    cookie SERVERID insert indirect nocache  //同一客户端访问服务器,返还的是原来的服务器(记录cookie信息)

    balance roundrobin              //模式

    server web1 192.168.4.2:80 cookie ck1  check inter 2000 rise 2 fall 5     //健康检查2000ms  连续2次 不健康5次

    server web2 192.168.4.3:80 cookie ck2  check inter 2000 rise 2 fall 5

php html 分主机负载

vim /etc/haproxy/haproxy.cfg

frontend  zlweblb(定义名) 192.168.4.99:80

      acl webhtml(策略名) path_end(路径结尾)       -i   .html      //path_beg(路径开头)

      acl webphp                    path_end     -i   .php

     use_backend phpgrp(组名)  if    webphp

     use_backend htmlgrp                   if    webhtml

     default_backend (默认组名)  htmlgrp

backend htmlgrp(定义组信息)

     balance     roundrobin

     server  web101 192.168.4.101:80 check

     server  web102 192.168.4.102:80 check

backend phpgrp

     balance     roundrobin

     server  web66 192.168.4.66:80 check

     server  web77 192.168.4.77:80 check

重启服务 测试

原文地址:https://www.cnblogs.com/wwchihiro/p/9180334.html