Nginx返回一个假的200状态代码的空json对象

我们在Nginx上运行了一个API,它应该返回JSON对象.这个服务器有很多负载,所以我们做了很多性能改进.

API从客户端接收ID.服务器有一堆代表这些ID的文件.因此,如果将ID作为文件找到,则后端将返回该文件的内容(即JSON).如果文件不存在,则不调用后端,Nginx simple会为此发送404,因此我们保存了性能(没有后端系统必须运行).

现在我们偶然发现了一个问题.由于我们仍然需要支持旧系统,我们无法为客户分发404页面,因为这会导致问题.我想出的是,返回一个空的JSON字符串而不是({})带有’假’200状态代码.这需要是一个高性能的解决方案,仍然能够处理所有负载.

这可能吗,如果可以,怎么做?

最佳答案

error_page 404 =200 @empty_json;

location @empty_json {
     return 200 "{}";
}

参考:

> http://nginx.org/r/error_page
> http://nginx.org/r/return
> http://nginx.org/r/location

dawei

【声明】:唐山站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。