拦截 nginx 回复主体并更改状态码

拦截 nginx 回复主体并更改状态码

我有一些内部 API 服务器api.example.com,当收到某种请求时,它会返回一个网页,其中包含 或yes,并在两种情况下no带有状态代码200(我无法控制该服务器)。

我正在尝试设置一个可用的 nginx 配置,frontend.example.com它将代理frontend.example.com/foobarapi.example.com,并且我想使用200uponyes4xxupon回复查询no400此处说得简单些。我并不特别关心响应主体,因为它将仅供脚本使用。我希望设置是独立的,因此,我宁愿没有外部脚本/网站/代理来完成这项工作;即。我希望完全在 nginx 配置中完成此操作(最好不使用非库存模块)。

总而言之,我需要某种谓词来返回的网页内容这让我可以写类似

if ($webpage_content = "yes") {
    return 400;
}

我还没有找到任何相关文档。有没有什么办法可以做到这一点?

谢谢!

相关内容