1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
Source: libvmod-selector
Maintainer: Varnish Package Maintainers <team+varnish-team@tracker.debian.org>
Uploaders:
Michael Fladischer <fladi@debian.org>,
Section: web
Priority: optional
Build-Depends:
autoconf-archive,
debhelper-compat (= 13),
libvarnishapi-dev (>= 7.6.0-2~),
pkgconf,
python3-docutils,
varnish (>= 7.6.0-2~),
Standards-Version: 4.7.2.0
Vcs-Browser: https://salsa.debian.org/varnish-team/libvmod-selector
Vcs-Git: https://salsa.debian.org/varnish-team/libvmod-selector.git
Homepage: https://code.uplex.de/uplex-varnish/libvmod-selector
Rules-Requires-Root: no
Package: varnish-selector
Architecture: any
Depends:
${misc:Depends},
${shlibs:Depends},
Description: match strings with backends, regexen and other strings
Varnish Module (VMOD) for matching strings against sets of fixed
strings. A VMOD object may also function as an associative array,
mapping the matched string to one or more of a backend, another
string, an integer, or a regular expression. The string may also map
to a subroutine that can be invoked.
.
The VMOD is intended to support a variety of use cases that are
typical for VCL deployments, such as:
.
* Determining the backend based on the Host header or the prefix of
the URL.
* Rewriting the URL or a header.
* Generating redirect responses, based on a header or the URL.
* Permitting or rejecting request methods.
* Matching the Basic Authentication credentials in an Authorization
request header.
* Matching media types in the Content-Type header of a backend
response to determine if the content is compressible.
* Accessing data by string match, as in an associative array, or by
numeric index, as in a standard array.
* Dispatching subroutine calls based on string matches.
* Executing conditional logic that depends on features of the request
or response that can be determined by matching headers or URLs.
.
Operations such as these are commonly implemented in native VCL with
an if-elsif-elsif sequence of string comparisons or regex matches.
As the number of matches increases, such a sequence becomes cumbersome
and scales poorly -- the time needed to execute the sequence increases
with the number of matches to be performed.
With the VMOD, the strings to be matched are declared in a tabular
form in vcl_init, and the operation is executed in a few lines.
|