# ERB templated nginx configuration
# see https://doc.scalingo.com/platform/deployment/buildpacks/nginx

upstream backend_server {
	server localhost:8000 fail_timeout=0;
}

server {
  listen <%= ENV["PORT"] %>;
  server_name _;
  server_tokens off;

  root /app/build/frontend-out;

  # Django rest framework
  location ^~ /api/ {
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_redirect off;
      proxy_pass http://backend_server;
  }

  # Django admin
  location ^~ /admin/ {
      proxy_set_header X-Forwarded-Proto https;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

      proxy_redirect off;
      proxy_pass http://backend_server;
  }

  # Serve static files with caching
  location ~* ^/assets/.*\.(css|js|json|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot)$ {
      expires 30d;
      add_header Cache-Control "public, max-age=2592000";
  }

  # Serve static files
  location / {
      try_files $uri $uri/ /index.html;
      # Add no-cache headers
      add_header Cache-Control "no-cache, no-store, must-revalidate";
      add_header Pragma "no-cache";  # HTTP 1.0 header for backward compatibility
      add_header Expires 0;
  }

  # Optionally, handle 404 errors by redirecting to index.html
  error_page 404 =200 /index.html;
}
