]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/imagery/templates/default/nginx_titiler.conf.erb
imagery: improve tiler caching and keepalive
[chef.git] / cookbooks / imagery / templates / default / nginx_titiler.conf.erb
index 2ce67a36b0582e227751231f4979675db482975a..e849484418b5606dc8827d7296063410e9298ed7 100644 (file)
@@ -4,9 +4,25 @@ server {
     server_name <%= @name %> <% @aliases.each do |alias_name| %> <%= alias_name %><%- end -%>;
 
     rewrite ^/\.well-known/acme-challenge/(.*)$ http://acme.openstreetmap.org/.well-known/acme-challenge/$1 permanent;
-    return 301 https://$host$request_uri;
+
+    location / {
+      return 301 https://$host$request_uri;
+    }
+
+    location /za-25cm {
+      root "/store/imagery/za";
+      expires max;
+    }
 }
 
+upstream tiler_backend {
+    server 127.0.0.1:8080;
+
+    keepalive 32;
+}
+
+proxy_cache_path /var/cache/nginx-cache levels=1:2 keys_zone=ngi-aerial:64m;
+
 server {
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
@@ -33,12 +49,44 @@ server {
     gzip_comp_level 9;
     gzip_vary on;
 
+    location /za-25cm {
+      root "/store/imagery/za";
+      expires max;
+    }
+
     location /api/v1/titiler {
       rewrite ^/api/v1/titiler(.*)$ $1 break;
       proxy_pass http://localhost:8080;
-      proxy_set_header HOST $host;
+      proxy_set_header Host $host;
       proxy_set_header Referer $http_referer;
       proxy_set_header X-Forwarded-For $remote_addr;
-      proxy_set_header X-Forwarded-Proto $scheme;
+      proxy_set_header X-Forwarded-Proto https;
+      proxy_set_header X-Forwarded-SSL on;
+      proxy_http_version 1.1;
+      proxy_set_header "Connection" "";
+      proxy_redirect off;
+    }
+
+    location /ngi-aerial {
+      set $args "";
+      rewrite ^/ngi-aerial/(\d+)/(\d+)/(\d+)\.jpg  /mosaicjson/tiles/WebMercatorQuad/$1/$2/$3@1x?url=https%3A%2F%2Ftiler.openstreetmap.org%2Fza-25cm%2Fmosaic-tiler-https.json&pixel_selection=first&tile_format=jpeg break;
+      proxy_pass http://tiler_backend;
+      proxy_set_header Host $host;
+      proxy_set_header Referer $http_referer;
+      proxy_set_header X-Forwarded-For $remote_addr;
+      proxy_set_header X-Forwarded-Proto https;
+      proxy_set_header X-Forwarded-SSL on;
+      proxy_http_version 1.1;
+      proxy_set_header "Connection" "";
+      proxy_redirect off;
+      proxy_cache_key "$scheme$proxy_host$uri";
+      proxy_cache ngi-aerial;
+      proxy_cache_valid 200 204 180d;
+      proxy_cache_use_stale error timeout updating http_502 http_503 http_504;
+      proxy_cache_background_update on;
+      proxy_ignore_headers Cache-Control;
+      expires max;
+      add_header X-Proxy-Cache $upstream_cache_status;
+
     }
 }