04 2020 档案

摘要: errorloc和errorloc302都是同样的效果,都是以临时重定向到指定的url上;这里还需要注意一点,这两种方式都是跳转前请求的方法是什么,跳转对应url也是同样的方法;这样一来对于其他非GET方法请求出现403错误码的时候,对应的错误页就无法正常处理(通常只允许GET方法去请求别的URL);比如跳转前用PUT方法,出现错误403后,按照上面的配置,对应指定的错误页的url也会用PUT方法去请求;为了解决这样的问题,我们这里需要用到errorloc303来指定;该指令的意思是返回303响应码;如果请求前非GET方法,而出现对应错误后,用GET方法去请求对应错误状态码指定的URL; 阅读全文
posted @ 2020-04-29 01:49 Linux-1874 阅读(1244) 评论(0) 推荐(1) 编辑
摘要: 作为代理服务器,在完成一次http事务的过程中,报文的流向是这样的;首先用户端的请求会到达haproxy,haproxy收到用户的请求,对其进行拆包分析,然后根据用户请求报文的某些首部的特征,然后模拟用户的请求去请求对应后端server,此时haproxy就扮演着客户端角色去请求后端服务器;后端服务器收到haproxy的请求,然后响应资源内容给haproxy,haproxy收到后端服务器的响应,然后再次拆包,分析,然后封装响应报文响应客户端;在这样的一个过程中,对于客户端的请求报文是否能够到达后端服务器或者后端服务器的响应报文是否能够到达客户端这个需要haproxy说了算 阅读全文
posted @ 2020-04-27 22:22 Linux-1874 阅读(916) 评论(0) 推荐(0) 编辑
摘要: cookie就是用来让服务端辨识客户端的一种机制;而对于haproxy来讲,基于cookie来做会话保持的原理就是通过对后端服务器响应报文中的cookie信息中插入(或覆盖的方式)一个键值对,在客户端下次访问时,检查对应cookie首部的信息,从而让haproxy能够判断把该请求调度在那个后端服务器上;通常我们会在server上设置一个cookie的值,在listen或backend中设置一个cookie的键,明确说明以怎样的方式设置cookie的键;通过listen或backend中设置的cookie的键结合server后面的cookie的值组成的cookie信息,从而实现不同的cookie信息调度到不同的server上去; 阅读全文
posted @ 2020-04-26 01:21 Linux-1874 阅读(1721) 评论(0) 推荐(1) 编辑
摘要: roundrobin:动态轮询;支持权重的运行时调整,支持慢启动,每个后端中最多支持4095个server;什么意思呢?动态调整权重就是说不重启服务的情况下调整权重;慢启动说的是,前端的流量不会一下子全部给打进来,而是一部分一部分的打到后端服务器上;这样可以有效防止流量过大时一下子把后端服务器压垮的情况;后端最多支持4095个server表示在一个backend或listen中使用该算法最多只能定义4095个server; 阅读全文
posted @ 2020-04-25 01:43 Linux-1874 阅读(2994) 评论(0) 推荐(1) 编辑
摘要: haproxy的配置文件大概可以分两段;第一段配置上global配置段即全局配置段,主要是针对haproxy的进程和安全相关的;第二段是proxies代理配置段,主要是配置haproxy前端监听那个地址那个端口以及后端server的名称、地址、端口,以及server相关属性等配置;而proxies配置段里又分defaults配置段,这个部分主要是定义后续的backend,listen这两个段的默认配置;什么意思呢?也就是在后面的配置中如果我们没有写对应参数,它默认会继承defaults里的配置;如果说后面的配置中和前边的defaults中的配置重复了,那么就已后面的配置生效,也就是说后面的配置段优先级高于defaults里的配置; 阅读全文
posted @ 2020-04-24 01:53 Linux-1874 阅读(1775) 评论(0) 推荐(0) 编辑
摘要: 前面聊nginx的时候我们有聊到过nginx的一个重要的功能反向代理,这里再简单回顾下,所谓代理就是“一手托两边”,什么意思呢?就是代理服务器它面向客户端一侧它扮演服务器角色,面向服务器一侧它扮演客户端角色;而反向代理就是代理服务端响应客户端的请求;我们把这种用于代理服务器响应客户端角色叫反向代理;haproxy就是一反向代理实现的软件,在基于反代的模式下,可以对后端服务器做四层或七层的负载均衡;通常情况下haproxy工作在一个流量入口的节点上,用于接收并把客户端的请求分发给不同应用的后端服务器; 阅读全文
posted @ 2020-04-21 00:11 Linux-1874 阅读(4173) 评论(0) 推荐(1) 编辑
摘要: 对于varnish来讲,对后端主机做健康状态监测的原理是请求后端主机特定的资源,如果能够在指定的超时时长内正确响应我们就认为后端主机上健康状态的,如果不能正确的响应我们就认为该后端主机上不健康的;在varnish中对后端主机做健康状态监测需要用.probe 来引入一段上下文配置,明确的说明怎么对后端做健康状态监测(或者用probe关键字+名称来引入一段公有的健康状态监测机制,后端多台主机可以用.probe +名称引用);比如请求后端主机的那个url或者用.request来指定向后端主机发送的请求的报文;对后端主机的响应多少次我们认为是健康的,监测频度,超时时长等等信息; 阅读全文
posted @ 2020-04-10 21:18 Linux-1874 阅读(699) 评论(0) 推荐(0) 编辑
摘要: 对于varninsh来讲,缓存项修剪也叫缓存项删除;我们在varnish服务器上可以通过vcl语言来编写缓存策略,对于某些缓存该如何缓存,缓存多久等等;假如我们在定义好缓存策略后,在定义缓存过期时间内,后端服务器内容发生了变化,或者后端服务器发生了内容更新,我们如果不把varnish上的缓存修剪掉,对于用户来讲,用户的访问就不是最新的数据;为了解决这样的问题,我们需要人工手动的去修剪缓存项;而修剪缓存项一般都是针对某一类资源或特定资源来做修剪(通过用户指定或正在匹配),一般不会也不应该是全部; 阅读全文
posted @ 2020-04-09 21:43 Linux-1874 阅读(762) 评论(0) 推荐(0) 编辑
摘要: varnish的状态引擎分前端工作线程或者客户端状态引擎和后端工作线程或者服务端状态引擎;客户端状态引擎,主要处理客户端请求和响应相关的处理,比如是否可查缓存,是否命中,是否修剪缓存,是否识别用户请求的方法有或者直接交给vcl_pass,又或者说怎样响应客户端等等,可以看到客户端状态引擎vcl_pass,是一个额外处理机制,不管是否可查缓存,是否命中,都可以交给它处理;对于服务端状态引擎主要是处理和后端服务器请求和响应相关操作,比如怎样去后端服务器取资源,对服务器的响应报文是否可缓存,怎么缓存,对后端服务器的响应报文错误怎么处理等; 阅读全文
posted @ 2020-04-06 23:37 Linux-1874 阅读(850) 评论(0) 推荐(0) 编辑
摘要: VCL(varnish configuration lanuage)是“域”专有类型的配置语言,主要用于编写缓存策略的,VCL有多个状态引擎,状态之间存在相关性,但状态引擎彼此互相隔离;每个状态引擎可使用return(X)指明至那个下一级引擎;每个状态引擎对应于vcl文件中的一个配置端,即为subroutine,大概处理流程是这样的,例如vcl_hash --> return(hit) -->vcl_hit;处理过程要看return是什么,return(hit)就表示下一级处理的subroutine是vcl_hit; 阅读全文
posted @ 2020-04-03 21:18 Linux-1874 阅读(2034) 评论(0) 推荐(0) 编辑
摘要: http是web应用协议,通常我们说的一次http事务,不外乎就是客户端请求,服务端响应,通常我们是这样去理解http一次事务的过程;其实对于web服务器来说,一个客户端访问服务端的某资源时,往往客户端的请求没有到达真正提供web服务的服务器上,就被响应了,这是为什么呢?我们知道一个WEB站点在提供对外访问的页面上在一定时间内都不会发生变化,而对于这些不经常变化的资源,访问又特别大的情况,如果所有客户端的请求都到真正提供WEB服务的服务器上请求资源,可以想象,对于提供web服务的服务器所在网络是需要一个巨大带宽才能够足以支撑并发很多用户去访问;所以我们的站点不应该也不能够让所有的客户端直接访问后端真正的web服务器; 阅读全文
posted @ 2020-04-02 19:17 Linux-1874 阅读(979) 评论(0) 推荐(0) 编辑
摘要: 代理其实我们可以理解为中间的“人”,它既当客户端,又当服务端,只是我们站在不同的角度对它的称呼不一样;正向代理的角色的原理就是当客户端的报文发送到代理服务器后,代理客户端会更改客户端的源IP或源端口信息;在真正服务端上看到的请求通常是正向代理的ip和端口;而对于反向代理来说,它主要是代理服务端响应客户端的请求,它通常是修改客户端的目标IP或目标端口,在客户端响应的报文里看,通常是代理服务器的作为响应报文的源IP或源端口的响应,而在后端真正提供服务的服务端上看,请求报文通常是反向代理服务器的源IP或源端口; 阅读全文
posted @ 2020-04-01 23:41 Linux-1874 阅读(744) 评论(0) 推荐(3) 编辑