我正在将我的Web应用程序与 Cloudflare 集成在一起,Cloudflare在100秒后以 524 响应长时间运行的进程。 Cloudflare提供了为该过程创建单独的子域的解决方案。好的,我想将我的HTTP POST请求重定向到我新创建的子域,如果特定参数的值不为空。
以nginx作为Web服务器运行Linux。以下链接仅显示了如何在Cloudflare中从一个子域重定向到另一个子域,但是我想基于POST参数的值进行重定向。
例如,考虑证据参数,以下是POST请求的数据。如下所示,该请求不应重定向到新的/另一个子域。
{
"request_id" : "",
"callback_url" : "http://www.example.com/",
"email" : "",
"document" : {
"evidence" : "",
"document_number" : ""
}
}
但是,如果证据参数不为空,如下所示,则此请求应重定向到新的/另一个子域。
{
"request_id" : "",
"callback_url" : "http://www.example.com/",
"email" : "",
"document" : {
"evidence" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAALCAYAAABCm8wlAAAABmJLR0QA=",
"document_number" : ""
}
}
是否有任何 nginx配置规则或Cloudflare页面规则可以解决此问题?我会感谢你的。
答案 0 :(得分:0)
使用默认的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
答案 1 :(得分:0)
需要记住的几点:
另一个选择是使用Cloudflare工作者来处理POST请求。工作人员可以将POST请求转发到正确的后端,而完全不影响用户的体验。