本文共 3136 字,大约阅读时间需要 10 分钟。
是一款高性能且开源的反向代理服务器和HTTP加速器,
1 轻量级,基于内存进行缓存,重启后数据将会丢失
2 利用虚拟内存方式,I/O性能好3 支持设置0-60秒的精确缓存时间4 VCL 配置管理灵活5 32位主机上缓存文件大小最大为2GB6 有强大的管理功能,top,stat,admin,list等7 状态机设计巧妙,结构清晰8 利用二叉堆管理缓存文件,可达到积极删除的目的优点:
1 性能高2 访问速度快,因为其是基于内存的缓存,而squid是基于磁盘的缓存,3 支持更多高并发,因为其TCP连接释放速度快4 可以随时通过命令清除指定缓存缺点:1 开销大2 因为是基于内存的,因此其关机或重启则缓存不再,外部服务器直接访问serverVCL varnish存取策略,没有循环,没有自定义变量
1 vcl_recv 函数:当请求达到并被成功接收时调用此函数
关键字:pass : 进入pass 模式,把请求控制权交给vcl_pass函数pipe: 进入pipe 模式,把请求控制权交给vcl_pipe函数error code : 返回错误标识2 vcl_pipe 函数:用于将请求直接传递到后端主机,当传输的内容不变之前,其连接不关闭
3 vcl_pass 函数: 用于进入pass 模式被调用,用于将请求直接传递到后端主机,不缓存
4 lookup: 表示在缓存中查找请求的对象,并根据查找结果将控制权交给vcl_hit 函数或vcl_miss 函数
5 vcl_hit 函数:执行lookup指令后,在缓存中找到请求的内容后将自动调用函数
结束: deliver: 表示将结果发送到客户端pass6 vcl_miss 函数:在缓存中没有找到此请求时调用此方法,结束: fetch: 表示从后端获取请求的内容,并把控制权交给vcl_fetch 函数pass7 vct_fetch 函数: 在后端主机更新缓存并获取内容后调用此方法,接着判断其是否被加入缓存,还是直接给客户端8 vcl_deliver 函数: 将在缓冲中找到的请求内容发送给客户端前调用此方法
9 vcl_timeout 函数: 在缓存内容到期前调用此函数
discard: 表示清除该内容fetch10 vcl_discard 函数
在缓存内容到期或缓存空间不足时,调用此函数。keep : 表示将内容继续保留在缓存中discard处理过程大致分为如下几个步骤: (1)Receive状态,也就是请求处理的入口状态,根据VCL规则判断该请求应该是Pass或 Pipe,或者进入Lookup(本地查询)。 (2)Lookup状态,进入此状态后,会在hash表中查找数据,若找到,则进入Hit状态,否则进 入miss状态。 (3)Pass状态,在此状态下,会进入后端请求,即进入fetch状态。 (4)Fetch状态,在Fetch状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地 的存储。 (5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。
流程图:
主机名称 | 功能 | IP地址 |
---|---|---|
server1 | varnish调度器 | 192.168.122.232 |
server2 | 后端web 服务器 ,供web服务 | 192.168.122.4 |
server3 | 后端web服务器,提供web服务 | 192.168.122.109 |
软件包位置:
链接:密码:6lmw下载以下软件包:1 查看及配置打开文件最大数量:
此参数与内核文件打开数量和系统文件打开数量相关,其中内核文件打开数量必须最大,其次是系统文件打开数量,最后才是该服务打开文件数量其中内核文件打开数量查询:2系统文件打开数量查询:3、 修改的地方说明:其实只修改/etc/profile就可以生效了,但我还是建议把/etc/security/limits.conf也修改一下。最后强调的是,你如果要使得修改对所有用户都生效,那么现在看来你只能重新编译Linux的内核才行。在系统层面修改varnish打开文件数量限制:1 查看后端web server 2 IP地址
2 配置服务器端server 2 web服务。安装http服务编写配置文件启动服务其默认端口为801 配置服务
2 启动varnish服务并查看其端口状态3 访问查看:使用本机访问server1的IP则自动跳转到server2 上,其含义是如果缓存命中,则显示
"HIT from westos cache"; 否则显示:"MISS from westos cache"; 重启服务清空缓存清空指定缓存此时针对服务器端的webHTTP服务后缀的相对目录而言的1 安装httpd 服务
2 配置访问文件3 启动服务1 查看server3端IP地址
2配置多站点访问控制 此配置端的含义是当访问www.westos.org 或 *.westos.org 时,都将结果映射到web1(server2)上。而当访问bbs.westos.org时 。会将结果访问到web2(server3)重启服务3 在客户端配置解析此IP地址为代理服务器的IP地址进行访问查看:其中下面的lb 表示web 组的名称
round-robin 表示一种调度算法,是轮循机制的调度算法后面的set req.backend=lb 则表示其使用的是lb 类型的算法和组return (pass); 的含义是其不缓存(仅限于测试使用,不建议实际使用)重启服务,建议使用reload 进行,因为其会显示出错误配置信息进行访问查看
此IP地址文server1 端IP地址
刷新一直是当设置后,则转载于:https://blog.51cto.com/11233559/2103596