cache_mem <%= node[:squid][:cache_mem] %>
<% if node[:squid][:version] > 2 -%>
-workers <%= node[:cpu][:total] %>
+workers <%= [ node[:cpu][:total] - 2, 1 ].max.ceil %>
+cpu_affinity_map process_numbers=<%= (1..[ node[:cpu][:total] - 2, 1 ].max.ceil).to_a.join(',') %> cores=<%=(1..[ node[:cpu][:total] - 2, 1 ].max.ceil).to_a.join(',') %>
+
+# Set short clean shutdown interval
+shutdown_lifetime 10 seconds
error_log_languages off
<% end -%>
<% if node[:squid][:version] > 3 -%>
# Use RFC6891 recommended max size
-dns_packet_max 4096
+dns_packet_max 4096 bytes
# Use low initial retry interval (backoff start)
dns_retransmit_interval 2 seconds
# Set low timeout
dns_timeout 15 seconds
<% end -%>
+dns_v4_first on
# used by squidclient / munin
http_port 3128
icp_port 3130
log_icp_queries off
-# FIXME - configurable
<% if node[:squid][:version] < 3 -%>
http_port 80 accel defaultsite=tile.openstreetmap.org tcpkeepalive=60,10,6 http11
<% else -%>
-http_port 80 accel no-vhost defaultsite=tile.openstreetmap.org tcpkeepalive=60,10,6
+http_port 8080 accel no-vhost defaultsite=tile.openstreetmap.org tcpkeepalive=60,10,6
<% end -%>
cache_effective_user proxy
<% end -%>
cache_log /var/log/squid/cache.log
cache_store_log none
-buffered_logs on
+
client_db off
strip_query_terms off
<% if node[:squid][:version] > 2 -%>
store_id_extras "%>a %un %>rm myip=%la myport=%lp"
<% end -%>
-digest_generation on
+digest_generation off
-refresh_pattern . 0 50% 8640
+refresh_pattern . 0 50% 20160
+refresh_pattern -i tile.openstreetmap.org 60 80% 20160 reload-into-ims
# ZERO required for logrotate to work properly
logfile_rotate 0