linux - 如果某些参数不为空,则将 HTTP POST 请求重定向到另一个子域

标签 linux nginx http-post cloudflare

我正在将我的网络应用程序与 Cloudflare 集成,Cloudflare 在 100 秒后以 524 响应长时间运行的进程。 Cloudflare 提供了为此过程创建单独子域的解决方案。好的,我想将我的 HTTP POST 请求重定向到我新创建的子域,如果特定参数的值不为空

使用 nginx 作为 Web 服务器运行 Linux。以下链接仅显示如何在 Cloudflare 中从一个子域重定向到另一个子域,但我想根据 POST 参数的值进行重定向。

[链接] https://webmasters.stackexchange.com/questions/105897/cloudflare-dns-how-to-301-redirect-all-traffic-from-sub-domain-to-main-domain-w

例如,考虑evidence参数,下面是POST请求的数据。如下所示,不应将此请求重定向到新的/另一个子域。

{
    "request_id"    : "",
    "callback_url" : "http://www.example.com/",
    "email"        : "",
    "document"         : {
        "evidence"           : "",
        "document_number" : ""
    }
}

但如果 evidence 参数不为空,如下所示,则此请求应重定向到新的/另一个子域。

{
    "request_id"    : "",
    "callback_url" : "http://www.example.com/",
    "email"        : "",
    "document"         : {
        "evidence"           : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA=",
        "document_number" : ""
    }
}

有没有什么nginx配置规则或者Cloudflare Page规则可以解决这个问题?我会感谢你。

最佳答案

默认的 nginx 安装是不可能的。您需要安装 lua-nginx-module 并使用 ngx.req.get_body_data。我认为文档清楚地说明了如何满足您的要求。

https://github.com/openresty/lua-nginx-module

https://github.com/openresty/lua-nginx-module#ngxreqget_body_data

关于linux - 如果某些参数不为空,则将 HTTP POST 请求重定向到另一个子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57946179/

相关文章:

linux - (Bluez) 如何获取蓝牙耳机按键输入?

django - Docker 容器中的 Nginx 出现 `connection reset` 错误,但在没有容器的情况下工作正常

django - Dockerized Nginx 和 Django,如何提供静态文件

java - inputStream 编码问题(特殊字符 : ñ, á,...)

java - 将多个实体(自定义对象)设置为 httpRequest

linux - 如何将 "inject"行转换为此处的文档重定向?

Linux nasm 程序集将字符附加到字符串

linux - 仅在命令请求时回答 "Yes"或 "No"

docker - 在Kubernetes/Nginx中为客户端设置正确的主机名

java - "cURL -u"使用 Apache HTTPClient 的 API key 授权