zoukankan      html  css  js  c++  java
  • varnish 子程序流程

    VCL中主要动作:

    pass:当一个请求被pass后,这个请求将通过varnish转发到后端服务器,该请求不会被缓
    存,后续的请求仍然通过Varnish处理。pass可以放在vcl_recv 和vcl_fetch中。
    lookup:当一个请求在vcl_recv中被lookup后,varnish将从缓存中提取数据,如果缓存中
    没有数据,将被设置为pass,不能在vcl_fetch中设置lookup。
    pipe:pipe和pass相似,都要访问后端服务器,不过当进入pipe模式后,在此连接未
    关闭前,后续的所有请求都直接发到后端服务器,不经过Varnish的处理。
    deliver:请求的目标被缓存,然后发送给客户端
    hit_for_pass:表示直接从后台获取数据,会创建一个hit_for_pass的对象,该对象的TTL
    值将会被设置成beresp.ttl的当前值。用来控制vcl_deliver如何处理当前的请求,
    后续的请求会直接vcl_pass,可在vcl_fetch中用
    fetch:从后端服务器获取请求目标,控制权转交给vcl_fetch。
    hash:进入Hash模式
    restart:重启本次事务,重新返回给vcl_recv,如果重启次数超过了max_restarts报错
    ok:表示正常
    error:表示错误

     VCL中,有3个重要的数据结构

    req
    请求目标,当varnish接收到一个请求,这时req object就被创建了,在vcl_recv中的大部分工作,都是在req object上展开的。

    • client.ip:客户端IP
    • req.request:请求类型,例如”GET”,”HEAD”
    • req.url:请求的URL
    • req.backend:使用哪个后端服务器为这个请求提供服务
    • req.backend.healthy:后端服务器是否健康
    • req.http.header:对应的HTTP头
    • req.grace:设置对象被保持的时间


    beresp
    后端服务器返回的目标,它包含返回的头信息,在vcl_fetch中的大部分工作都是在beresp object上开展的。

    • bereq.request:请求的类型("GET", "HEAD")
    • bereq.url:请求的url
    • bereq.http.header:请求的HTTP header
    • beresp.do_gzip:是否在存储前Gzip压缩
    • beresp.do_gunzip:是否在存储前解压缩
    • beresp.http.headerHTTP header
    • beresp.statusHTTP的状态码
    • beresp.ttl:对象保存的时间
    • beresp.grace:对象grace保存的时间

    obj
    被cache的目标,只读的目标被保存于内存中,obj.ttl的值可修改,其他的只能读。

    • obj.status :服务器返回的HTTP状态码
    • obj.ttl:目标的剩余生存时间,以秒为单位
    • obj.grace:对象grace的存活时间
    • obj.http.header:Http header
  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/xiaoliangup/p/9216239.html
Copyright © 2011-2022 走看看