VCL-后端

配置后端

手册部分:

7

后端定义

后端声明创建并初始化命名的后端对象。声明以关键字开头 backend 后跟后端的名称。实际声明以键/值的方式放在花括号中。::

backend name {
    .attribute1 = value;
    .attribute2 = value;
    [...]
}

如果有名为的后端 default 除非显式设置了另一个后端,否则将使用它。如果没有命名后端 default VCL程序中的第一个后端成为默认后端。

如果您仅使用由VMOD创建的动态后端,则可以指定一个空的、始终失败的(503)后端:

backend default none;

后端必须指定为 .host 或者是 .path 属性,但不能同时使用。所有其他属性都有缺省值。

属性 .host

要指定联网的后端 .host 采用数字IPv4/IPv6地址或解析为 at most 一个IPv4地址和一个IPv6地址::

.host = "127.0.0.1";

.host = "[::1]:8080";

.host = "example.com:8081";

.host = "example.com:http";

属性 .port

可以将TCP端口号或服务名称指定为 .host 如上所述,或单独使用 .port 属性::

.port = "8081";

.port = "http";

属性 .path

本地后端的Unix(4)域套接字的绝对路径::

.path = "/var/run/http.sock";

或者,如果有的话, @ 后跟本地后端的抽象套接字的名称::

.path = "@mybackend";

如果加载VCL时UDS套接字不存在,则会发出警告。这样就可以启动UDS侦听对等体,或在之后设置套接字文件的权限。

如果UDS套接字不存在或权限拒绝访问,则连接尝试将失败。

属性 .host_header

如果探测和常规后端请求没有这样的头,则添加到探测和常规后端请求的主机头::

.host_header = "Host: example.com";

超时属性

这些属性控制患者的程度 varnishd 在后端获取期间::

.connect_timeout = 1.4s;
.first_byte_timeout = 20s;
.between_bytes_timeout = 10s;

缺省值来自具有相同名称的参数,请参见 华而不实

属性 .max_connections

限制Varnish可以同时打开到后端的连接数::

.max_connections = 1000;

属性 .proxy_header

属性将代理协议头发送到后端 client.ipserver.ip 值::

.proxy_header = 2;

合法的值为1和2,具体取决于所需的代理协议版本。

Notice 此设置将导致后端连接仅用于单个请求(取决于未来的改进)。因此,应格外小心,以避免由于没有本地端口可用而与EADDRNOTAVAIL建立失败的后端连接。可能的选项包括:

  • 使用额外的后端连接到额外的IP地址或TCP端口

  • 增加可用端口数(Linux sysctl net.ipv4.ip_local_port_range )

  • 早期重用后端连接端口(Linux sysctl net.ipv4.tcp_tw_reuse )

属性 .preamble

将所有新打开的连接上的BLOB发送到后端::

.preamble = :SGVsbG8gV29ybGRcbgo=:;

属性 .via

另一个人的名字 proxy 后端,通过该后端与 destination 后端使用 PROXY2 协议,例如::

backend proxy {
  .path = "/path/to/proxy2_endpoint";
}
backend destination {
  .host = "1.2.3.4";
  .via = proxy;
}

这个 proxy 后端还可以使用 .host / .port 定义而不是 .path

使用 .path 属性的属性。 destination 不支持后端。

这个 .via 属性与该属性无关 .proxy_header 。如果两者都使用,则会按照 .proxy_header 规格。

从本版本开始, proxy 后端与配合使用 .via 不能当导演,不能自己用 .via (错误: Can not stack .via backends ),并且协议被固定为 PROXY2

实施详情:

If .via = <proxy> is used, a PROXY2 preamble is created with the destination backend's address information as dst_addr/dst_port and, optionally, other TLV attributes. The connection is then made to the proxy backend's endpoint (path or host/port). This is technically equivalent to specifying a backend destination_via_proxy with a .preamble attribute containing the appropriate PROXY2 preamble for the destination backend.

属性 .authority

连接到此后端时使用的HTTP授权。如果取消设置, .host_header.host 都被使用过。

.authority = "" 禁用发送授权。

从本版本开始,该属性仅由 .via 将连接作为 PP2_TYPE_AUTHORITY 中的类型长度值(TLV) PROXY2 前言。

属性 .probe

请看 VCL-探头

另请参阅

HISTORY

VCL是由Pul-Henning Kamp与Verden Gang AS、Redpill Linpro和Varnish Software合作开发的。本手册页面由Per Buer、Pul-Henning Kamp、Martin Blix Grydeland、Kristian LyngstøL、Lasse Karstensen等人撰写。