CacheURL Plugin¶
This plugin allows you to change the key that is used for caching a request by using any portion of the url via regex. It is designed so that multiple requests that have different URLs but the same content (for example, site mirrors) need be cached only once.
Installation¶
This plugin is only built if the configure option
--enable-experimental-plugins
is given at build time.
Configuration¶
Create a cacheurl.config file in the plugin directory with the url regex patterns to match.
url_pattern cache_key_replacement
The url_pattern is a regular expression (pcre). The replacement can contain $1, $2 and so on, which will be replaced with the appropriate matching group from the pattern.
Add the plugin to your plugin.config file:
cacheurl.so
Start traffic server. Any rewritten URLs will be written to cacheurl.log in the log directory by default.
Examples¶
To make files from s1.example.com, s2.example.com and s3.example.com all be cached with the same key. Adding a unique suffix (TSINTERNAL in this example) to the cache key guarantees that it won’t clash with a real URL should s.example.com exist.
http://s[123].example.com/(.*) http://s.example.com.TSINTERNAL/$1
Cache based on only some parts of a query string (e.g. ignore session information). This plucks out the id and format query string variables and only considers those when making the cache key.
http://www.example.com/video\?.*?\&?(id=[0-9a-f]*).*?\&(format=[a-z]*) http://video-srv.example.com.ATSINTERNAL/$1&$2
Completely ignore a query string for a specific page
http://www.example.com/some/page.html(?:\?|$) http://www.example.com/some/page.html
More docs¶
There are some docs on cacheurl in Chinese, please find them in the following: