Combo Handler Plugin¶
This plugin provides an intelligent way to combine multiple URLs into a single URL, and have Apache Traffic Server combine the components into one response. This is useful for example to create URLs that combine multiple CSS or Javascript files into one.
Installation¶
To make this plugin available, you must enable experimental plugins when
building Traffic Server by passing the -DBUILD_EXPERIMENTAL_PLUGINS=ON
to the cmake
command when building. Note that this plugin is built and installed in
combination with the ESI module, since they share common code.
Configuration¶
The arguments in the plugin.config
line in order represent
The path that should triggers combo handler (defaults to “admin/v1/combo”)
The name of the key used for signature verification (disabled by default)
A colon separated list of headers which, if present on at least one response, will be added to the combo response.
The path of a config file with allowed content types of objects to be combined, one per line, without parameters. (Blank lines and comments starting with “#” are ignored.) Parameters in the Content-Type field value will be ignored when checking if they appear in the allowed types. If the path does not start with “/”, the config file must be located in the ATS config directory. By default, all content types are allowed, but if this file is specified, it must contain at least one content type.
A “-” can be supplied as a value for any of these arguments to request default value be applied.
Also, just like the original combohandler, this plugin generates URLs of
the form http://localhost/<dir>/<file-path>
. <dir>
here defaults
to l
unless specified by the file path in the query parameter using
a colon. For example:
http://combo.com/admin/v1/combo?filepath1&dir1:filepath2&filepath3
Will result in these three pages being fetched:
http://localhost/l/filepath1
http://localhost/dir1/filepath2
http://localhost/l/filepath3
Remap rules have to be specified to map the above URLs to desired content servers.
The plugin also supports a prefix parameter. Common parts of successive file paths can be extracted and specified separately using a ‘p’ query parameter. Successive file path parameters are appended to this prefix to create complete file paths. The prefix will remain active until changed or cleared (set to an empty string). For example, the query
"/file1&p=/path1/&file2&file3&p=&/file4&p=/dir:path2/&file5&file6"
results in these file paths being “reconstructed”:
/file1
/path1/file2
/path1/file3
/file4
/dir:path2/file5
/dir:path2/file6
Caching¶
Combohandler follows a few rules for the “Cache-Control” header:
All requested documents must have “immutable” for the combo’d response to also have “immutable”.
If one or more requested documents has “private” set, then the combo’d response will also have “private”. If no requested documents have a publicity setting, then the default is “public”.
The “max-age” value will be set to the smallest of all the requested “max-age” values. If no documents has “max-age” set, then the default is 10 years.