本文共 2683 字,大约阅读时间需要 8 分钟。
在server中有个参数cookie可以定义,用户请求的资源信息响应的时候插入set-cookie的值,这里如果真想实现cookie的粘性就要实现所谓的参数cookie,来完成指定如何去向客户端响应报文中,插入附加的cookie值
name表示所属键的键名,如何去修改键名(就用rewrite,insert,prefix) 还可以指定哪些报文加cookie,indirect, nocache,非从缓存中取数据 postonly 如果说这个情报中,已然有相应的值,就直接发送给客户端,不做多修改 当用户请求到达时可以设定如何去修改 nocache 从缓存中获取的不予修改 indirect客户都安已然有相应的cookie,直接发给客户端, 不加修改 重启服务进行访问 只要是来自这个url请求就一直会发往这个服务器 所以这是基于cookie的webserver粘性,来自同意机器的请求就会始终发往一台主机了 curl命令发送时是不会加cookie信息的 现在后端服务器记录的访问地址都是代理服务器地址 表示记录请求报文的首部的值 前端再次访问 except可以设定内部网络的机器访问不加首部 header定义首部名称 作为haproxy代理服务器如何去拒绝请求,可以返回403之类的,用户认证让代理服务器来做用户认证,来合成一个403页面来响应给客户端 404资源不存在 可以在代理服务器上自定义错误页,404处理不了,是因为只有服务器才知道是否存在资源 file是本地文件路径,url,可以实现跨站重定向 errorfile和errorloc是让用户自定义响应码的,尤其错误的响应码,跟nginx类似,对其他的响应内容做出正常响应 401未认证 haproxy合成的错误也,只能是这几种信息 下面这些事用来请求和操纵响应报文的 客户都安发来的请求报文,服务器本身事做不出任何修改的,但发起报文向后端服务器的时候,是由haproxy生成的,这段报文,haproxy可以进行任意修改,服务器的响应报文,haproxy也修改不了,但是经过haproxy之后,haproxy响应给客户端就可以更改响应报文头部了 一般来讲我们要操纵报文首部,比如之前的opreation-forwarded-to,可以把这个请求报文发送给客户端之前,可以把信息附加给请求报文首部,用附加的值继续跟踪 请求报文,这个只是固定的首部,可以自定义首部,string(首部是什么 rspadd,响应给客户端的报文,添加自定义首部 rsp的可以用的位置很关键 在对应的listen或者frontend中添加 X-VIA对应首部名称+ 值 响应报文中就添加了这些 可以把真实server隐藏起来 还可以删除,可以基于正则表达式来指定 删除一个server,隐藏server信息 现在server就没有了 下面是日志系统 haproxy在本地是不会记录日志的 global是调用全局中的设置 一个haproxy可以至少有两个日志报文位置,有一个是global,还可以在定义一个global去调用访问 这些信息都记录的是什么,日志事件,localhost哪一个haproxy主机,haproxy进程pid,客户端地址和端口;访问时由哪个前端进行frontend调度,调度到哪一个后端中的server,响应码304,请求报文首部,get http 链接的建立时间,响应时间 日志格式都有解释 tw在队列中等待的时长 tc创建链接所消耗的时长 tw在队列中等待消耗的时长 tc创建连接消耗的时长 tt接收响应报文的时长 当前session被记录到日志力后,服务器会当前的并发操作总数是多少 当前服务器链接是,真正意义上的链接数量 整个后端队列长度 haproxy支持httpd和tcp,所以日志跟nginx和httpd类似,通用 capture cookie 捕获或记录响应报文中的cookie首部的值的,cookie值时很明白,所以尽量不要去记录 使用这项是可以记录的,指明你的cookie名称,这样对应的websrv定义有一个自己的server名称 len可以最长记录多少 底下这个可能更加灵活 响应报文首部 压缩类型 这些参数都是再生产环境中使用到的参数,可以对后面的server做检测, 检测的时候可以用7层检测或者4层检测 就改成了layer/check 了 也可以指向那个url发送请求 也可以定义时,定义method指令,自定义请求方法 希望返回的内容时你想要的,match pattern,要匹配到指定的内容才可以 haproxy在健康性检测时可以进程http-check expect 指明检测的匹配标准 对响应码做正则表达式匹配 rstring,对内容做精确性匹配 检查不匹配 现在试试用rstatus 2开头的响应码 还可以!号取反 可以自定义7层捡测的监测方式,来监测所期望的响应内容是什么,这个只适用loghttp,mode tcp是没用的 下一组是链接超时时长 最大非活动链接的超时时长,双方通信结束,有可能tcp链接还没断开,那这个链接还不断开,链接多长时间 客户端一侧的非活动链接的超时时长 服务器端的非活动链接的超时时长 可以使用长连接,多长时间 长时间应该从两个维度去限制,时间和数量 timeout http-request 作为代理服务器来讲,一个链接持续60s,这个60s之内无论客户访问不访问,这个链接都存在,最大并发量4000, 这个4000都在访问,请求都进来了,所以代理服务器一定与客户端一次不要持久,但是不持久也有缺陷,每一次请求都要重新建立链接,可以持久,但是时间短一点,比如2S,最长不超过3s,具体看业务需求作为代理服务器来讲,客户都安发送请求,整个网络都是public,是一个一个字节发过来的,如果网络慢的话,2秒钟发送一个,这样通讯就比较慢,可以设置成超时链接,如果在2s之内,所有请求发送不过来,就断开,不让你访问了 等待请求报文的超时时长,直接超时
链接鉴定,作为haproxy而言,链接鉴定的作用是向服务器端发送请求 请求来,haproxy转发到服务器端,在这之前需要先和服务器端建立链接,链接以后才会发送http请求,这个链接一直建立不上,就断开链接,超时时长 半关闭的链接的超时时长是多少。 因为每个链接都是双方向的,可能指关闭了以一端,另外一端没用关闭 可以维持一般,在接下来的请求中,响应更快,可以实现链接复用 基于acl的访问控制转载地址:http://cbkgn.baihongyu.com/