]> git.openstreetmap.org Git - chef.git/blob - cookbooks/imagery/templates/default/nginx_imagery_layer_fragment.conf.erb
apt: re-enable HPE mcp repos
[chef.git] / cookbooks / imagery / templates / default / nginx_imagery_layer_fragment.conf.erb
1 <% require 'uri' %>
2 # DO NOT EDIT - This file is being maintained by Chef
3 location ~* "^/layer/<%= @layer %>/(\d+)/(\d+)/(\d+)\.(jpg|jpeg|png|webp)$" {
4   # keep captures in variables for use in the named location
5   set $z   $1;
6   set $x   $2;
7   set $y   $3;
8   set $ext $4;
9
10   # Serve local file if present; otherwise jump to proxy
11   try_files /layer/<%= @layer %>/$z/$x/$y.jpg /layer/<%= @layer %>/$z/$x/$y.jpeg /layer/<%= @layer %>/$z/$x/$y.png /layer/<%= @layer %>/$z/$x/$y.webp @<%= @site %>_<%= @layer %>_backend;
12
13   gzip off;
14   expires 31d;
15   add_header Cache-Control "stale-while-revalidate=2678400, stale-if-error=2678400";
16   add_header x-cache-status $upstream_cache_status;
17   add_header 'Access-Control-Allow-Origin' '*' always;
18 }
19
20 location @<%= @site %>_<%= @layer %>_backend {
21   internal;
22
23 <% if @uses_tiler -%>
24   set $upstream_uri /mosaicjson/tiles/WebMercatorQuad/$z/$x/$y@1x.$ext?url=<%= URI.encode_www_form_component(@source) %>&pixel_selection=first;
25
26   proxy_pass http://<%= @site %>_tiler_backend$upstream_uri;
27   proxy_set_header Host $host;
28   proxy_set_header Referer $http_referer;
29   proxy_set_header X-Forwarded-For $remote_addr;
30   proxy_set_header X-Forwarded-Proto https;
31   proxy_set_header X-Forwarded-SSL on;
32   proxy_http_version 1.1;
33   proxy_set_header Connection "";
34   proxy_set_header Cache-Control "";
35   proxy_set_header Pragma "";
36   proxy_redirect off;
37
38   proxy_cache_key "<%= @layer %><%= @revision %> $request_method $z $x $y $ext";
39   proxy_cache proxy_cache_zone;
40   proxy_cache_valid 200 204 180d;
41   proxy_cache_use_stale error timeout updating http_502 http_503 http_504;
42   proxy_cache_background_update on;
43
44   proxy_next_upstream error timeout invalid_header http_500 http_503;
45   proxy_next_upstream_timeout 30s;
46   proxy_next_upstream_tries 3;
47
48   proxy_intercept_errors on;
49   proxy_ignore_headers "Cache-Control";
50   proxy_ignore_headers "Expires";
51   proxy_hide_header "Cache-Control";
52   proxy_hide_header "Expires";
53   proxy_hide_header "Access-Control-Allow-Origin";
54   proxy_hide_header "Content-BBOX";
55   proxy_hide_header "Content-CRS";
56 <% else -%>
57   # Override QUERY_STRING to force mapserver query parameters
58   fastcgi_param QUERY_STRING "map=/srv/imagery/mapserver/layer-<%= @layer %>.map&mode=tile&layers=<%= @layer %>&tilemode=gmap&tile=$x+$y+$z";
59   fastcgi_pass "<%= @site %>_fastcgi";
60   include fastcgi_params;
61   fastcgi_param REQUEST_METHOD "GET";
62   fastcgi_param HTTP_PROXY "";
63   fastcgi_read_timeout 60s;
64
65   # Caching
66   fastcgi_cache "fastcgi_cache_zone";
67   fastcgi_cache_key "<%= @layer %><%= @revision %> $request_method $z $x $y";
68
69   # Free connection to socket for other requests
70   fastcgi_keep_conn off;
71
72   fastcgi_cache_valid 200 21d;
73
74   # Serve stale cache on errors or if updating
75   fastcgi_cache_use_stale error timeout updating http_500 http_503;
76   # If in cache as stale, serve stale and update in background
77   fastcgi_cache_background_update on;
78   # Enable revalidation using If-Modified-Since and If-None-Match for stale items
79   fastcgi_cache_revalidate on;
80
81   keepalive_requests 0;
82
83   fastcgi_catch_stderr "Image handling error";
84
85   fastcgi_next_upstream error timeout invalid_header http_500 http_503;
86   fastcgi_next_upstream_tries 8;
87 <% end -%>
88   gzip off;
89   expires 31d;
90   add_header Cache-Control "stale-while-revalidate=2678400, stale-if-error=2678400";
91   add_header x-cache-status $upstream_cache_status;
92   add_header 'Access-Control-Allow-Origin' '*' always;
93 }
94
95 <% if @root_layer -%>
96 rewrite "^/(\d+)/(\d+)/(\d+)\.(jpg|jpeg|png|webp)$" "/layer/<%= @layer %>/$1/$2/$3.$4" last;
97 <% end -%>
98 <% @url_aliases.each do |url| -%>
99 rewrite "^<%= url %>/(\d+)/(\d+)/(\d+)\.(jpg|jpeg|png|webp)$" "/layer/<%= @layer %>/$1/$2/$3.$4" last;
100 <% end -%>