varnish-selector

match strings with backends, regexen and other strings

Description

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.

Upload more screenshots

Please help extend the collection of screenshots. Just make a screenshot and upload it here. You don't need to register or anything.

Upload a screenshot

Hint: upload an image here from your clipboard with Ctrl-V


Homepage

https://gitlab.com/uplex/varnish/libvmod-selector/


Install this software package

If the package is available for the distribution you are currently using on your computer then install the software by clicking on…

Install varnish-selector