+upstream tile_cache_backend {
+ server 127.0.0.1;
+ <% @caches.each do |cache| -%>
+ <% if cache[:hostname] != node[:hostname] -%>
+ #Server <%= cache[:hostname] %>
+ <% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
+ server <%= address %> backup;
+ <% end -%>
+ <% end -%>
+ <% end -%>
+
+ keepalive 32;
+}
+
+# Rates table based on cookie value
+map $cookie_qos_token $limit_rate_qos {
+ default 8192; # Default Rate
+ "test" 32768; # FIXME - Future TOTP Token
+}
+
+map $cookie_qos_token $cookie_qos_token_set {
+ # Cookie Domain per RFC 6265
+ default 'qos_token=test; Secure; httponly; Max-Age=3600; Domain=tile.openstreetmap.org; Path=/'; # FIXME - Future TOTP Token
+ "test" ''; # Do not Set-Cookie if current is valid
+}
+
+map $http_user_agent $approved_scraper {
+ default ''; # Not approved
+ '~^JOSM\/' 'JOSM';
+ '~^Mozilla\/5\.0\ QGIS\/' 'QGIS';
+}
+
+# Limit Cache-Control header to only approved User-Agents
+map $http_user_agent $limit_http_cache_control {
+ default ''; # Unset Header
+ '~^Mozilla\/5\.0\ QGIS\/' ''; # Unset Header
+ '~^Mozilla\/5\.0\ ' $http_cache_control; # Pass Header
+}
+
+# Limit Pragma header to only approved User-Agents
+map $http_user_agent $limit_http_pragma {
+ default ''; # Unset Header
+ '~^Mozilla\/5\.0\ QGIS\/' ''; # Unset Header
+ '~^Mozilla\/5\.0\ ' $http_pragma; # Pass Header
+}
+