nginx timeout 504 Ответ в формате JSON - определить шаблон страницы ошибки

Можно переопределить формат ответа для указанного типа кода, напр. для 504, используя определение внутри секции server:

error_page 504 /504.html;
location /504.html{
  internal;
  add_header 'Content-Type' 'application/json charset=UTF-8';
  return 504 '{"statusCode":504, "message":"Gateway Timeout Error"}';
}

Если вам нужно сохранить настройки CORS для поддоменов, то придется выставить и эти заголовки, продублировов их, например:

error_page 504 /504.html;
location /504.html{
  internal;
  add_header Access-Control-Allow-Origin $allow_origin_nestproxy always;
  add_header Access-Control-Allow-Credentials true always;
  add_header Access-Control-Expose-Headers x-correlation-id always;
  add_header Access-Control-Allow-Headers 'Content-Type, Authorization, Cache-Control, x-correlation-id' always;
  add_header Access-Control-Allow-Methods 'GET,HEAD,PUT,PATCH,POST,DELETE,OPTIONS' always;
  
  add_header 'Content-Type' 'application/json charset=UTF-8';
  return 504 '{"statusCode":504, "message":"Gateway Timeout Error"}';
}

Источник идеи https://gist.github.com/weapp/99049e6947...

Key Words for FKN + antitotal forum (CS VSU):