mgjj 发表于 2019-1-1 12:44:00

haproxy 学习笔记

  haproxy常用算法:
  
  一、roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;
  二、static-rr,表示根据权重,建议关注;
  三、leastconn,表示最少连接者先处理,建议关注;
  四、source,表示根据请求源IP,建议关注;
  五、uri,表示根据请求的URI;
  六、url_param,表示根据请求的URl参数'balance url_param' requires an URL parameter name
  七、hdr(name),表示根据HTTP请求头来锁定每一次HTTP请求;
  八、rdp-cookie(name),表示根据据cookie(name)来锁定并哈希每一次TCP请求。
  

  其实这些算法各有各的用法,我们平时应用得比较多的应该是roundrobin、source和lestconn,大家可以重点关注下。


  

  环境说明:
  IP: 192.168.2.205       haproxy服务器
  IP: 192.168.2.206       httpd服务器
  IP: 192.168.2.207       lamp服务器
  IP: 192.168.2.103       windows客户端
  一、完成状态页实验
1、配置haproxy.cfg文件listen stats
    mode http
    bind *:1080
    stats enable
    stats hide-version
    stats uri /haproxyadmin?stats
    stats realm Haproxy\ Statistics
    stats auth admin:kevin
    stats auth kevin:skymobi
    stats admin if TRUE
    acl statsrc src 192.168.2.0/24
    http-request allow if statsrc
    http-request deny
  二、反向代理实验+sesion绑定+负载均衡实验
1、不考虑session会话配置
配置haproxy.cfg:
frontendmain *:80

    default_backend             webserver

backend webserver
    balance   roundrobin
    serverhttpd1 192.168.2.206:80 check
    serverhttpd2 192.168.2.207:80 check


2、通过源ip绑定的方式来解决sesion会话
配置haproxy.cfg:
frontendmain *:80

    default_backend             webserver

backend webserver
    balance   source
    serverhttpd1 192.168.2.206:80 check
    serverhttpd2 192.168.2.207:80 check





3、通过roundrobin+cookie的方式来解决sesion会话
配置haproxy.cfg:
frontendmain *:80

    default_backend             webserver

backend webserver
    balance   source
       cookieLAMP insert indirect nocache
       serverhttpd1 192.168.2.206:80 cookie httpd1 check
       serverhttpd2 192.168.2.207:80 cookie httpd2 check





4、通过rui的方式来将访问同一个url的请求,代理给同一台主机
配置haproxy.cfg:
frontendmain *:80

    default_backend             webserver

backend webserver
    balance   uri
    serverhttpd1 192.168.2.206:80 check
    serverhttpd2 192.168.2.207:80 check


三、三台主机,完成web请求的动静分离实验
1、192.168.2.206安装httpd
2、192.168.2.207安装lamp
3、lamp配置php访问页面:


4、haproxy配置修改:

frontend main *:80
   acl url_staticpath_beg    -i /static /images /javascript /stylesheets
   acl url_static   path_end    -i .jpg .gif .png .css .js .html
   use_backend static    if url_static
   default_backend   lamp

backend static
   balance   roundrobin
   server    static 192.168.2.206:80 check
backend lamp
   balance   roundrobin
   server    lamp 192.168.2.207:80 check


  


  




页: [1]
查看完整版本: haproxy 学习笔记