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

default:设定默认参数,

frontenf:前端服务器的设定

backend:后端服务器的设定

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

参数:

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

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

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

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

几种调度算法

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

 map-based取模法 : 是指将后端服务器按照权重虚拟为多个节点,当请求的哈希值对应第几个节点,就对应做映射
缺点:一但服务器的位置发生变动,它会影响全局的取模结果
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: check
server srv2 192.168.1.105: check
hash-type consistent
for I in {..}; do curl http://192.168.1.200/test1.html ; done

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

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

7 rdp-cookie  远程桌面协议

举例:

 基于first
backend websrvs
balance first
server srv1 192.168.1.104: check maxconn (最大并发数3个)
server srv2 192.168.1.105: check
压测:ab -c -n http://192.168.1.102 (-c并发数) 压测看不出效果
for I in {..} ; do curl http://192.168.1.102; done

基于first调度算法

backend websrvs
balance hdr(user-agent) 同种浏览器调度在用一个服务器上
server srv1 192.168.1.104: check
server srv2 192.168.1.105: 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  *:
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 *:
Stats enable
Stats uri /myproxy?admin
Stats realm “HAProxy stats page”
Stats auth admin:admin
Stats admin if TRUE
重启服务
访问:192.168.1.104:/myproxy?admin

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

Maxconn    3000

19 Mode (tcp|http|health)

    Tcp基于4层实现代理

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

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

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

20 Cookie 参数:  不能用在frontend

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

LB的会话保存机制有3种

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

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

      errorfile    /etc/haproxy/errorfiles/400badreq.html
errotfile /dev/null
errorfile /etc/haproxy/errorfiles/403forbid.http
errorfile /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                不使用日志

haproxy代理配置段参数设定的更多相关文章

  1. 负载均衡服务之HAProxy基础配置(二)

    前文我们聊了下haproxy的global配置段中的常用参数的说明以及使用,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12763245.html:今天我们来 ...

  2. 负载均衡服务之HAProxy基础配置(三)

    前文我们聊到了haproxy的代理配置段中比较常用的配置指令的用法以及说明,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12770930.html:今天我们来 ...

  3. HAPRoxy(一):HAProxy基本配置、调度算法与tcp、http、heath模式配置示例

    一.HAProxy安装 1.HAProxy简单介绍 HAProxy虽然名字前有HA,但它并不是一款高可用软件,而是一款用于实现负载均衡的软件,可实现四层与七层的负载均衡. 2.yum安装HAProxy ...

  4. HAproxy 基础配置

    基础配置详解 HAProxy 的配置文件haproxy.cfg由两大部分组成,分别是global和proxies部分 global:全局配置段 进程及安全配置相关的参数性能调整相关参数Debug参数 ...

  5. 负载均衡服务之HAProxy基础配置(一)

    前文我们聊了下haproxy的基础安装,以及怎样去代理后端主机的配置:当然没有很详细的去说配置文件中各指令的意思:有关haproxy的安装和代理后端server可以参考本人博客https://www. ...

  6. Squid代理配置

    更改squid错误页面时间不对的问题解压源码包,进入此路径/usr/local/squid/share/errors/zh-cn(需要更改该目录下的所有文件find -type f |xargs se ...

  7. haproxy代理https配置方法【转】

    记得在之前的一篇文章中介绍了nginx反向代理https的方法,今天这里介绍下haproxy代理https的方法: haproxy代理https有两种方式:1)haproxy服务器本身提供ssl证书, ...

  8. haproxy反向代理配置示例

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  9. 记一次haproxy反向代理配置

    首先借用一下前辈的话,解释下反向代理是什么? 反向代理:以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客 ...

随机推荐

  1. 主成分分析_PCA解释

    粘贴自:http://blog.codinglabs.org/articles/pca-tutorial.html 数据的向量表示及降维问题 向量的表示及基变换 协方差矩阵及优化目标 协方差矩阵对角化 ...

  2. 为Nexus配置阿里云代理仓库【转】

    Nexus默认远程仓库为https://repo1.maven.org/maven2/ 慢死,还常连不上. 可以添加阿里云代理仓库 URL:http://maven.aliyun.com/nexus/ ...

  3. [Android] Android 手机下 仿 微信 客户端 界面 -- 微聊

    Android 手机下 仿 微信 客户端 界面 -- 微聊 (包括聊天列表 + 聊天对话页 + 朋友圈列表页 + 我的/发现 列表页) 项目演示: 功能说明: 1)底部标签切换 (TabHost + ...

  4. [Reinforcement Learning] 动态规划(Planning)

    动态规划 动态规划(Dynamic Programming,简称DP)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法. 动态规划常常适用于具有如下性质的问题: 具有最优子结构(Opt ...

  5. 【codeforces 983E】NN country

    Description In the NN country, there are n cities, numbered from 1 to n, and n−1 roads, connecting t ...

  6. MySQL学习12 - pymysql模块的使用

    一.pymysql的下载和使用 1.pymysql模块的下载 2.pymysql的使用 二.execute()之sql注入 三.增.删.改:conn.commit() 四.查:fetchone.fet ...

  7. Django first lesson 环境搭建

    pycharm ide集成开发环境 (提高开发效率) 解释器/编译器 编辑器 调试环境 虚拟机连接 设置VirtualBox端口 操作1 操作2 点击+号添加,名称为SSH,其中主机端口为物理机的端口 ...

  8. Web项目容器集成ActiveMQ & SpringBoot整合ActiveMQ

    集成tomcat就是随项目启动而启动tomcat,最简单的方法就是监听器监听容器创建之后以Broker的方式启动ActiveMQ. 1.web项目中Broker启动的方式进行集成 在这里采用Liste ...

  9. HDU - 1036

    题意描述很垃圾,后来看别人代码才知道怎么回事:对(题目所给d/总时间:所有时间加起来)四舍五入并取整,然后对结果/60得到用了几分钟:对结果%60得到用了几秒. presentation error一 ...

  10. referrer policy

    我们知道,在页面引入图片.JS 等资源,或者从一个页面跳到另一个页面,都会产生新的 HTTP 请求,浏览器一般都会给这些请求头加上表示来源的 Referrer 字段.Referrer 在分析用户来源时 ...