# nginx configuration for tar1090
location /INSTANCE/data/ {
  alias SOURCE_DIR/;
  gzip_static off;
  location ~ aircraft\.json$ {
    add_header Cache-Control "no-cache";
    gzip on;
    gzip_static on;
  }
  location /INSTANCE/data/traces/ {
    location ~ trace_recent {
      gzip off;
    add_header Cache-Control "no-cache";
      add_header Content-Encoding "gzip";
    }
    location ~ trace_full {
      gzip off;
    add_header Cache-Control "no-cache";
      add_header Content-Encoding "gzip";
    }
  }
  location ~ globe_.*\.json$ {
    gzip off;
    add_header Cache-Control "no-cache";
    add_header Content-Encoding "gzip";
  }
  location ~ .*\.binCraft$ {
    gzip off;
    add_header Cache-Control "no-cache";
    add_header Content-Encoding "gzip";
  }
  location ~ .*\.zst$ {
    gzip off;
    add_header Cache-Control "no-cache";
  }
}

location /INSTANCE/osm_tiles_offline/ {
  alias /usr/local/share/osm_tiles_offline/;
}

location /INSTANCE/openfreemap_offline/ {
  alias /usr/local/share/openfreemap_offline/mnt/;
  location /INSTANCE/openfreemap_offline/tiles/ {
      add_header Content-Encoding "gzip";
  }
}

location /INSTANCE/globe_history/ {
  alias /var/globe_history/;
  gzip on;
  gzip_static off;

  location ~ /acas/ {
    default_type text/plain;
    add_header Cache-Control "no-cache";

    gzip_static on;
  }

  location ~ ....-..-.. {
    absolute_redirect off;
    rewrite "^(.*)/globe_history/(....)-(..)-(..)/(.*)$" "$1/globe_history/$2/$3/$4/$5" last;
  }

  location ~ traces/ {
    gzip off;
    add_header Cache-Control "public, max-age=1209600";
    add_header Content-Encoding "gzip";
  }
  location ~ heatmap/ {
    gzip off;
    add_header Cache-Control "public, max-age=1209600";
    add_header Content-Encoding "gzip";
  }
}

location /INSTANCE/chunks/ {
  alias /run/SERVICE/;
  gzip_static off;
  location ~ chunk_.*\.gz$ {
    gzip off;
    add_header Cache-Control "public, max-age=86400";
    add_header Content-Type "application/json";
    add_header Content-Encoding "gzip";
  }
  location ~ current_.*\.gz$ {
    gzip off;
    add_header Cache-Control "no-cache";
    add_header Content-Type "application/json";
    add_header Content-Encoding "gzip";
  }
  location ~ .*\.json$ {
    gzip on;
    add_header Cache-Control "no-cache";
  }
}

location /INSTANCE/aircraft_sil/ {
    alias /usr/local/share/tar1090/aircraft_sil/;
    add_header Cache-Control "public, max-age=1209600";
    try_files $uri /aircraft_sil/ZZZZ.png;
    absolute_redirect off;
}

location /INSTANCE {
  alias HTMLPATH/;
  try_files $uri $uri/ =404;
  absolute_redirect off;
  gzip off;
  gzip_static off;

  # location block priority:
  # = / exact location matches > regex matches > prefix matchs

  # exact matches
  location = /INSTANCE/config.js {
    add_header Cache-Control "no-cache";
    gzip on;
    gzip_static on;
  }
  location = /INSTANCE/index.html {
    add_header Cache-Control "no-cache";
    gzip on;
    gzip_static on;
  }

  # regex matches
  location ~ ^/INSTANCE/style.*\.css$ {
    add_header Cache-Control "public, max-age=7776000";
    gzip on;
    gzip_static on;
  }

  location ~ ^/INSTANCE/db-.*\.js$ {
    gzip off;
    gzip_static off;
    add_header Cache-Control "public, max-age=7776000";
    add_header Content-Encoding "gzip";
  }

  location ~ ^/INSTANCE/libs/.*$ {
    add_header Cache-Control "public, max-age=7776000";
    gzip on;
    gzip_static on;
  }
  location ~ ^/INSTANCE/[^/]*\.js$ {
    add_header Cache-Control "public, max-age=7776000";
    gzip on;
    gzip_static on;
  }

  # prefix matches
  location /INSTANCE/images {
    add_header Cache-Control "public, max-age=7776000";
  }
  location /INSTANCE/flags {
    add_header Cache-Control "public, max-age=7776000";
  }
}
