参考资料

  1. Aerospike 是一个高性能、分布式 NoSQL 数据库
  2. Redmine 是一个开源的、基于 Web 的项目管理和问题跟踪工具
  3. ROS (Robot Operating System) 简介
  4. docker安装包详细说明以及案例
  5. Mongo-Express 是一个基于 Node.js 和 Express 的轻量级 Web 界面
  6. Go(又称 Golang)是 Google 开发的一种静态强类型、编译型、并发型编程语言
  7. Rocky Linux 是一个开源企业级操作系统
  8. OpenJDK(Open Java Development Kit)是 Java 平台的开源实现

Varnish 简介

Varnish 是一款高性能的开源 HTTP 加速器和反向代理服务器,主要用于缓存动态和静态内容,提升网站性能。

特点

  1. 高性能:采用内存缓存,响应速度快。

  2. 灵活配置:使用 VCL(Varnish Configuration Language)进行配置。

  3. 负载均衡:支持后端服务器的负载均衡。

  4. 日志和统计:提供详细的日志和统计功能。

  5. 可扩展:支持通过 VMODs(Varnish Modules)扩展功能。

最新更新内容及时间

  • 最新版本:7.3.0

  • 更新时间:2023年10月

  • 更新内容

    • 改进了 HTTP/2 支持。

    • 新增了多个 VMODs。

    • 性能优化和 bug 修复。

镜像下载地址

官网地址

阅读文档地址

Docker 安装示例

docker run --name my-varnish -v /path/to/varnish.vcl:/etc/varnish/default.vcl -p 8080:80 varnish:7.3.0

.yarl 设置教程

Varnish 使用 .vcl 文件进行配置,不是 .yarl。以下是一个简单的 VCL 配置示例:

vcl 4.1;

backend default {
    .host = "backend-server";
    .port = "80";
}

sub vcl_recv {
    if (req.url ~ "^/static/") {
        return (hash);
    }
}

sub vcl_backend_response {
    if (bereq.url ~ "^/static/") {
        set beresp.ttl = 1h;
    }
}

常用错误问题

  1. 503 错误:后端服务器不可用,检查后端配置。

  2. 缓存不生效:检查 VCL 配置中的缓存规则。

  3. 内存不足:调整 mallocfile 存储大小。

  4. VCL 编译错误:使用 varnishd -C -f /etc/varnish/default.vcl 检查语法。

  5. 启动失败:检查端口是否被占用或配置错误。