我们在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