haproxy代理配置段参数设定

 

代理配置段:有四个配置段

default:设定默认参数,

frontenf:前端服务器的设定

backend:后端服务器的设定

listening:是设定前端和后端一一对应的设定

参数:

1bind:用于指定监听的端口,设定在frontend和listen段中,用于前端的可以监听多个端口 ,指明ip地址和一个端口范围,ip地址可省

bind  :443    ssl    crt   /etc/haproxy/site.pem

2balance 用于后端的调度算法,用在backend和listen段中

几种调度算法有:
   1) roundrobin    轮询是动态的,指这种算法支持权重的运行时调度,本身表示加权的 , 最多支持4095个后端服务器
        同时支持man启动(man启动是指,当在后端轮询的服务器中,再添加一个服务器,他会慢慢的将前两台服务器上的请求慢慢移到这台上,不会一下子一堆的请求,否则容易将服务器瞬间压死)缺陷可能后端服务器有限制
2static-rr  是静态轮询调度,不支持权重运行时调度, 不支持man启动,对后端服务器没有限制
3)leastconn最小连接 加权最小连接,计算后端服务器连接数时,要先除以它的权重得到的最小数将处理下一次请求,也是动态的
4)first :请求会先请求第一台,把第一台服务器请求满了,才会请求第二台
5)source  原地址哈希 
几种调度算法

3 hash-type  指定哈希类型 有2种:

1 map-based取模法 : 是指将后端服务器按照权重虚拟为多个节点,当请求的哈希值对应第几个节点,就对应做映射
    缺点:一但服务器的位置发生变动,它会影响全局的取模结果
2 consistent一致性哈希:服务器变动只会影响局部

4 uri :是指不管前端的那个客户端请求,只要访问相同的uri就分发给同一台服务器上 提高缓存命中率 ,特别适用于缓存服务器上

5 uri_param   基于rul中某个指定的key  基于parameter 绑定,将同一个key的值发往到同一个服务器上,key不同的根据算法调度

  用 uri   uri是动态静态的取决于hash-type  只要来自同一个url发往同一台主机

backend websrvs
        balance  uri
        server srv1 192.168.1.104:80 check
        server srv2 192.168.1.105:80 check
        hash-type   consistent 
for  I  in  {1..10}; do curl  http://192.168.1.200/test1.html ; done

 

6 hdr (<name>)此处有由(name)指定的将http首部的名称的值做哈希计算,将相同的发往相同的服务器上

      如 hdr(cookie)  是基于cookie做绑定

7 rdp-cookie  远程桌面协议

举例:

1 基于first
backend websrvs
        balance first
        server srv1 192.168.1.104:80 check   maxconn  3(最大并发数3个)
        server srv2 192.168.1.105:80 check
压测:ab  -c  10   -n  10000   http://192.168.1.102     (-c并发数) 压测看不出效果
for    I   in  {1..10} ; do   curl   http://192.168.1.102; done
基于first调度算法
backend websrvs
        balance  hdr(user-agent)  同种浏览器调度在用一个服务器上
        server srv1 192.168.1.104:80 check
        server srv2 192.168.1.105:80 check
        hash-type   consistent 
use_backend:  使用指定后端
default_backend: 使用默认后端要使用的默认

7 compression  压缩 在四处位置都可以使用的

      compression  algo   gzip |identity      指定压缩算法

      compression  algo   deflate

      compression    type   <text/html>     只对那些类型做压缩

8 server 用于backend  后端中指定后端主机,后面可以跟相应的参数用在listen和backend中

如:server srv1 192.168.1.104:80 check

Server 后面参数:

      1) backup  指备用,

      2)check  健康检测 默认是向服务器对应端口做健康检查

检查的方法有:
            addr:检测使用ip地址 设定检测的地址
            port:针对端口检测
            inter  <delay>  连续两次的检测之间的时间间隔默认为2000ms
            rise  <count> 连续检测多少次,结果成功则服务器标记ok 默认2次
            fall  <count> 连续检测多次,结果为失败,则标记不可用默认3次

option   httpchk     对http主页进行检测参数

option  httpchk  OPTIONS  *  HTTP/1.1 \r\nHost:\  www  指明请求的uri

      -----使用OPTIOS      方法,*表示对所有uri http版本1.1 主机名www 进行检查

    oprion  httpchk  GET  /test.html  HTTP/1.0

查看日志:

tail  -f   /var/log/httpd/access.log

8  cookie <value>  设定一个cookie值,会基于cookie值实现cookie会话

 9 maxconn  最大并发连接数

10 maxqueue 队列,:若一个服务器最大请求是3000 ,当有3500是将多的500暂存于队列中

11 minconn  最小连接,当设定了最小连接,他的最大连接是动态计算得出的

12 no-error  : 在探测出后端服务器故障时的行动策略

      fastinter :快速探测

      fail-check: 故障检测

      sudden-death: 告知故障

      mark-down:标记为不可用

13 no-mark-down: 标记为不可用后的操作

      shutdown-sessions: 将之前的该服务器上的所有请求切断

14 no-mark-up: 当服务器标记为可用时的操作

15 redir :重定向 访问时转接到百度

16 weight  定义服务器主机的权重

           Server srv1 192.168.1.104:80 check  weight 2

17 stats  enable  启动状态页

      Stats  uri:       访问: 172.168.1.10/haproxy?stats  默认的url

      Stats  auth:  默认不做访问限制

 

Stats  enable   启动统计页

         启动统计页,基于默认参数:

         Stats  uri  /haproxy?stats

         Stats  realm  HAProxy  Statistics

         Stats  auth  : no

         Stats  scope : no

Stats  auth <user>:<passwd>  认证的账号密码。可使用多次

Stats  realm   <realm>  认证时的realm提示

Stats  uri  :  自定义stats  page  的uri

Frontend  myweb  *:80
    Stats  enable
    Stats  uri  /myproxy?admin
    Stats  realm “HAproxy  stats  page”
    Stats  auth  admin:admin
    Compression  algo  gzip
    Compression  type  text/html  text/plain  application/xml  application/javascript
    Default_backend  webserver
    Stats  admin  if  TRUE   (如果永远为真使用)
单独定义一个stats
Listen  stats
    Bind  *:9099
    Stats  enable
    Stats  uri   /myproxy?admin
    Stats  realm “HAProxy  stats  page”
    Stats  auth  admin:admin
    Stats  admin  if TRUE
重启服务
访问:192.168.1.104:9099/myproxy?admin

18 Maxconn: 未指定的frontend定义最大并发数默认2000

         Maxconn    3000

19 Mode (tcp|http|health)

    Tcp基于4层实现代理

         http仅基于7层http协议时使用

  health:工作为健康状态的响应模式,当链接请求到达时正常则回应ok,后即断开连接

listen  ssh
    bind  * : 22
    balance  leastconn
     mode  tcp               基于4层调度
    server  sr1 192.168.1.104:22  check
    server  sr2  192.168.1.105:22  check
重启服务
#ssh  root@192.168.1.104  -p  22

20 Cookie 参数:  不能用在frontend

可以实现基于cookie的会话保持

LB的会话保存机制有3种

    1 hash :通过hash值做会话绑定
        源ip
        Cookie
        Uri
    2 会话集群之间会话同步 (tomcat 中的msm机制)
    3 会话服务器 memcached /redis
Backend  webserver
    cookie  WEBSR  insert  nocache  indirect     cookie建为websrv  对nocache  indirect类数据做cookie
    Server  srv1  192.168.1.104:80  check  cookie srv1      值为srv1
    Server  srv2  192.168.1.10580  check  cookie srv2 

21 errorfile   自定义错误页  4个定义段都可以定义

      errorfile  400  /etc/haproxy/errorfiles/400badreq.html
      errotfile 408   /dev/null 
    errorfile  403  /etc/haproxy/errorfiles/403forbid.http
    errorfile   503  /etc/haproxy/error/503sorry.http
    

22errorloc  类似于重定向响应

   errorloc  403  http://mageedu.com/403.html

23  reqadd 向请求报文中添加首部  不能用在defent 配置段

      reqadd  X-proxy-by:\ HAproxy     添加的内容 if来表示什么条件下添加

24 rspadd      向响应报文添加首部

     rspadd  X-proxy-by:\ HAproxy      在响应报文中添加

25  rspdel       删除响应报文中的值

         rspdel  ^server: .*     删除报文中的server信息

26  reqdel

日志系统:

         Log   global    使用全局定义的日志

         No  log                不使用日志

 

转载于:https://www.cnblogs.com/huxl1/p/10744269.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值