来自Tarantool + Nginx的自定义响应

问题描述

具有实例:DMZ中的Nginx,其中TNT_Nginx_upstream_module + Tarantool Cartridge作为API服务器。
当我获得良好结果的响应时-包含数据的200 OK + JSON
如何设定其他回应?

  • 400错误的请求
  • 403禁止进入
  • 404未找到
  • 410已消失
  • 500内部服务器错误
  • 503服务不可用

解决方法

Tarantool Nginx上游模块被设计为遵循JSON RPC,而不是通用HTTP。使用rewrite_by_lua部分中的location,可以返回任意结果。看起来像这样:

location /api {
  default_type application/json;
  rewrite_by_lua '
    ...
  ';
}

我没有在此处粘贴完整的代码段,因为它很长。您可以查询here

通常,如果您想要通用的HTTP API,我也建议您不要使用提到的上游模块。最好使用用Lua编写的HTTP server module,并将Nginx用作常规反向代理。作为奖励,Lua HTTP服务器位于cartridge模块的内部。