我们已经在Nginx上运行了一个API,该API应该返回JSON对象。该服务器有很多负载,因此我们进行了很多性能改进。
该API从客户端接收ID。服务器上有一堆代表这些ID的文件。因此,如果将ID作为文件找到,则后端将返回该文件的内容(这是JSON)。如果该文件不存在,则不会调用任何后端,Nginx simple为此会发送404,因此我们可以节省性能(无需运行后端系统)。
现在,我们偶然发现了一个问题。由于我们仍然需要支持旧系统,因此我们无法为客户端分发404页面,因为这会引起问题。我想到的是返回一个空的JSON字符串({}
)并带有“假” 200状态代码。这必须是一个高性能的解决方案,以便仍然能够处理所有负载。
这可能吗?如果可以,怎么做?
最佳答案
error_page 404 =200 @empty_json;
location @empty_json {
return 200 "{}";
}
引用:
关于json - Nginx返回带有伪造的200状态代码的空json对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19930160/