2015-10-01 66 views
0

對於404和500S/502S/504S的錯誤請求的詳細信息,我回一個自定義的JSON錯誤頁面:啓用站點-NGINX:穿上定製404.json返回

{ 
    "response": 
    { 
      "status": "EXCEPTION_404_NOT_FOUND", 
    } 
} 

在我的/ service_nginx.conf ,我這樣設置:

error_page 404 /404.json; 
location /404.json { 
    internal; 
    root /temp/error_response_templates; 
} 

而且這工作正常。也就是說,JSON每404返回一次。 但我想將請求或某些請求詳細信息添加到返回的JSON中。 例如,http://service.com/param1/param2/,如果遇到404, 我想在返回的JSON中包含param1和param2。像這樣:

{ 
    "response": 
    { 
     "status":"EXCEPTION_404_NOT_FOUND", 
     "param1":<param1 value>, 
     "param2":<param2 value>, 
    } 
} 

這可能嗎?如果是的話,有人可以幫我怎麼做嗎? 在此先感謝!

回答

0

您可以設置像這樣爲每個錯誤代碼:

error_page 404 @404_json; 

    location @404_json { 
    default_type application/json; 
    return 404 '{ "response": { "status": "EXCEPTION_404_NOT_FOUND", 
    }, "message": "Not Found"}'; 
    } 

或從文件加載錯誤消息,例如:

try_files /404.json =404; 

我們推薦avoid using variables模板(由於性能原因)。