Skip to content

Instantly share code, notes, and snippets.

@simlegate
Created October 31, 2014 05:35
Show Gist options
  • Star 61 You must be signed in to star a gist
  • Fork 16 You must be signed in to fork a gist
  • Save simlegate/75b18359316cc33d8e20 to your computer and use it in GitHub Desktop.
Save simlegate/75b18359316cc33d8e20 to your computer and use it in GitHub Desktop.
Nginx return custom json
error_page 400 404 405 =200 @40*_json;
location @40*_json {
default_type application/json;
return 200 '{"code":"1", "message": "Not Found"}';
}
error_page 500 502 503 504 =200 @50*_json;
location @50*_json {
default_type application/json;
return 200 '{"code":"1", "message": "Unknown Error"}';
}
@rjmunro
Copy link

rjmunro commented Jun 19, 2017

Returning 200 means that anything that isn't a straightforward web browser will not know it has an error. Things like search engines may assume that the page is correct and useful and try to index it. archive.org may try to store it. Assistive technology for disabled people may tell it's users the wrong thing.

@needleshaped
Copy link

Very useful for error-handling on API reverse proxy.
"error_page" directive can be put in specific "location" only, as it supports multiple contexts: http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment