如何理解varnish
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章将为大家详细讲解有关如何理解varnish,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。varnishi由management(主进程)和(c
千家信息网最后更新 2025年12月01日如何理解varnish
这篇文章将为大家详细讲解有关如何理解varnish,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
varnishi由management(主进程)和(child/cache)子进程组成varnishi由management(主进程)和(child/cache)子进程组成 management的工作: 1、提供命令行接口 2、监控和管理子进程,初始化varnish 3、将default.vcl编译为二进制生成新的配置文件 child/cache的工作: 1、接收连接请求 2、处理用户请求 3、清除缓存中的过期对象 4、记录日志 5、根据default.vcl生成缓存策略 VCL: 1、缓存策略配置接口 2、基于"域"的配置 存储缓存对象: flie:单个文件进行存储,不支持持久化,会产生大量磁盘i/o对性能有一定影响 malloc:内存存储,性能较高,代价更高(内存比磁盘贵),长时间使用会产生内存碎片 persistent:单个文件进行存储,支持持久化,目前作为测试使用 varnish安装:centos7环境 1、配置epel源 2、yum -y install varnish varnish配置: /etc/varnish/default.vcl #vcl配置文件 /etc/varnish/varnish.params #命令行参数配置文件 /etc/varnish/secret #连接命令行认证文件 varnish管理工具: systemctl start varnish.service #启动varnish varnish默认监听*:6081和127.0.0.1:6082,6081提供服务,6082提供管理 varnishadm #交互式命令行管理工具 varnishlog #交互式获取日志工具 varnishncsa #交互式获取日志工具(apache格式) varnishstat #显示状态 varnishtop #排序 varnish.params详解: VARNISH_VCL_CONF=/etc/varnish/default.vcl #指定vcl文件位置 VARNISH_LISTEN_PORT=6081 #指定服务端口,默认监听所有地址 VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1 #管理ip VARNISH_ADMIN_LISTEN_PORT=6082 #监听端口 VARNISH_SECRET_FILE=/etc/varnish/secret #认证文件 VARNISH_STORAGE="file,/var/lib/varnish/varnish_storage.bin,1G" #缓存方式(单个文件缓存) #VARNISH_STORAGE="malloc,256M" #缓存方式(内存缓存),不能同时启动 VARNISH_USER=varnish #程序用户 VARNISH_GROUP=varnish #程序组#DAEMON_OPTS="-p thread_pool_min=5 -p thread_pool_max=500 -p thread_pool_timeout=300" #进程池配置 varnish状态引擎详解:状态引擎用于对客户端请求进行判断并作出相应处理 vcl_recv:接收用户请求,判断如何处理 vcl_pass: 绕过缓存,不从缓存中查询内容,将请求直接传递给后端主机 vcl_pipe:无法解析请求类型,直接交给后端处理 vcl_hash:可缓存数据,通过hash进行处理 vcl_hit:缓存命中 vcl_deliver:将缓存数据返回给客户端 vcl_miss:缓存未命中 vcl_fetch:从后端主机获取内容,通过判断将内容放入缓存或,直接返回给客户端 vcl_error:如果请求出现错误,由varnishi构建错误页返回给客户端 varnish负载均衡集群算法: random #随机 round-robin #轮询 fallback #备份 hash #固定后端 配置实例: vcl 4.0; #varnish版本 probe cache { #定义健康检查函数 .url = "/index.html"; #检查的url .timeout = 1s; #超时时间 .interval = 5s; #重试间隔 .window = 5; #重试次数 .threshold = 3; #重试三次成功则认为服务器在线 } backend www1 { #定义后端主机 .host = "192.168.0.10"; #后端主机 .port = "80"; #监听端口 .probe = cache; #调用健康检查函数 } backend www2 { .host = "192.168.0.40"; .port = "80"; .probe = cache; } backend www3 { .host = "192.168.0.70"; .port = "80"; .probe = cache; } import directors; #导入集群模块 sub vcl_init { new www = directors.round_robin(); #使用轮询算法 www.add_backend(www1); #集群主机 www.add_backend(www2); #集群主机 www.add_backend(www3); #集群主机 } sub vcl_recv { set req.backend_hint = www.backend(); #将所有流量发送给www集群 } 关于如何理解varnish就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
缓存
文件
配置
主机
进程
集群
内容
管理
内存
命令
客户
客户端
工具
处理
存储
监听
交互式
单个
日志
状态
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
语音服务器是什么东西
某台服务器一直ogi
国际航班网络安全
手机服务器连接被防火墙屏蔽
南京工业网络技术创新服务
软件开发费要交印花税
网络安全宣传精炼
如何远程管理神力科莎服务器
计算机网络安全的理论基础
有关软件开发方面的法律规定
企业电商软件开发怎么样
合肥软件开发java培训
euht提供的网络安全吗
2021年网络安全教育宣传片
软件开发国家标准6
福建的软件开发商
bim软件开发工程去哪里能报名
上海华清软件开发有限公司
深圳网络安全与执法公务员
软件开发中做需求的目的
开源数据库的基本组件
微信软件开发学习
数据库 替换
计算机网络安全的理论基础
电影服务器下载
euht提供的网络安全吗
网络安全部署的四种方式
租服务器有什么优势
气象局网络安全
疫情防控中网络安全