写在前面:如果此文有幸被某位朋友看见并发现有错的地方,希望批评指正。如有不明白的地方,愿可一起探讨。



varnish工作原理


wKiom1QkQ-GBDNqHAAEEoemP03Q686.jpg

如上图所示:varnish与一般服务器软件相似,分为master进程和child进程。master进程读取存储配置文件,调用合适的存储类型,然后创建/读入相应大小的缓存文件,接着master初始化管理该存储空间的结构体,然后fork并监控child进程。child进程在主线程的初始化过程中,将前面打开的存储文件整个mmap到内存中,此时创建并初始化空间结构体,挂到存储管理结构体,以待分配。child进程分配若干线程进行工作,主要包括一些管理线程和多个worker线程。


varnish工作流程图


wKioL1QkR0CiEotsAAUy3oMCLMA694.jpg



简单的varnish应用架构拓扑图


wKiom1QkTszRjaMnAAGn4OZpyuM876.jpg

待续...