r/squid: Support custom cache rules
Instead of hard-coding a single cache directory and a set of refresh patterns, the *squid* role can now have custom cache rules defined with the `squid_cache_dir` variable (which now takes a list of `cache_dir` settings) and the `squid_refresh_pattern` variable (which takes a list of refresh patterns). If neither of these are defined, the default configuration is used. This is a breaking change, since `squid_cache_dir` used to refer to a directory, and the previous default was to configure one cache path. There are no extant users of this role, though, so it doesn't really matter.
This commit is contained in:
@@ -78,11 +78,18 @@ maximum_object_size {{ squid_max_object_size }}
|
||||
cache_replacement_policy {{ squid_cache_replacement_policy }}
|
||||
|
||||
# Uncomment and adjust the following to add a disk cache directory.
|
||||
cache_dir {{ squid_cache_dir_type }} {{ squid_cache_dir }} {{ squid_cache_dir_max_size }} {{ squid_cache_dir_l1 }} {{ squid_cache_dir_l2 }}
|
||||
{% if squid_cache_dir is not defined %}
|
||||
#cache_dir ufs /var/spool/squid 100 16 256
|
||||
{% else %}
|
||||
{% for item in squid_cache_dir %}
|
||||
cache_dir {{ item }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
# Leave coredumps in the first cache dir
|
||||
coredump_dir /var/spool/squid
|
||||
|
||||
{% if squid_refresh_pattern is not defined %}
|
||||
# Never cache objects from internal servers
|
||||
refresh_pattern \.{{ ansible_domain|replace('.', '\\.') }} 0 0% 0
|
||||
# Never cache Yum repository metadata files
|
||||
@@ -94,3 +101,8 @@ refresh_pattern ^ftp: 1440 20% 10080
|
||||
refresh_pattern ^gopher: 1440 0% 1440
|
||||
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
|
||||
refresh_pattern . 0 20% 4320
|
||||
{% else %}
|
||||
{% for pattern in squid_refresh_pattern %}
|
||||
refresh_pattern {{ pattern }}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
Reference in New Issue
Block a user