caching - 如何访问 Varnish 管理区域?

标签 caching varnish varnish-vcl

这是一个愚蠢的问题,抱歉......我已经尝试谷歌搜索但无济于事。

我以为它只会访问 example.com:6082 但它似乎没有加载任何东西。

# # Telnet admin interface listen address and port
VARNISH_ADMIN_LISTEN_ADDRESS=127.0.0.1
VARNISH_ADMIN_LISTEN_PORT=6082

此外,作为一个附带问题(我仍在努力让它发挥作用),varnish 是否会缓存任何文件类型,即使它是 RSS 提要或 .php 文件或其他任何文件?

最佳答案

Varnish 没有管理区域。管理端口用于 CLI varnishadm 工具。它通常会自动选择端口。您还可以使用管理端口从自定义工具连接到 Varnish 并发出管理命令。

查看 varnishadm 的文档工具。下面是指定端口的示例:

varnishadm -T localhost:6028

有一个工具叫做 VAC (Varnish Administration Console)它提供了一个基于 Web 的管理控制台,但它非常昂贵,并且是 Varnish Plus 的一部分。


至于你问题的另一部分,Varnish 会缓存任何它认为可以安全缓存的内容。它不太关注文件类型,但更多关注 HTTP header 。例如,如果用户发送 cookie,默认情况下 Varnish 不会缓存页面,因为 cookie 可能表明用户在动态页面上。 Varnish 默认也只缓存 GET 请求。

查看 default vcl .对于版本 3:

sub vcl_recv {
    if (req.restarts == 0) {
        if (req.http.x-forwarded-for) {
            set req.http.X-Forwarded-For =
                req.http.X-Forwarded-For + ", " + client.ip;
        } else {
            set req.http.X-Forwarded-For = client.ip;
        }
    }
    if (req.request != "GET" &&
      req.request != "HEAD" &&
      req.request != "PUT" &&
      req.request != "POST" &&
      req.request != "TRACE" &&
      req.request != "OPTIONS" &&
      req.request != "DELETE") {
        /* Non-RFC2616 or CONNECT which is weird. */
        return (pipe);
    }
    if (req.request != "GET" && req.request != "HEAD") {
        /* We only deal with GET and HEAD by default */
        return (pass);
    }
    if (req.http.Authorization || req.http.Cookie) {
        /* Not cacheable by default */
        return (pass);
    }
    return (lookup);
}

关于caching - 如何访问 Varnish 管理区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23316454/

相关文章:

ssl - 我怎样才能告诉 Varnish 发送 https 给主人?

docker - 在Docker上设置Varnish + Drupal

varnish - 如何使用 varnish 将请求发送到 localhost httpd 服务器,但如果运行状况不佳,则将请求循环发送到一组其他节点

c++ - 堆分配如何影响硬件缓存命中率?

c# - 使用方法的 MethodHandle 作为键来缓存无参数方法的结果是否安全?

Varnish VCL 中的正则表达式捕获组

varnish - 通过 VCL 从 Varnish 发送自定义响应

php - Varnish 缓存 - 页面缓存多长时间?

node.js - 当我在服务器端更新模式时,中继/GraphQL 模式缓存不更新

java - 使用数据库更改缓存更新