用主体将Nginx上的请求从GET重写为POST(用于跟踪像素)

ben*_*n_d 2 webserver redirect web-services nginx tracking-pixel

我试图弄清楚是否有一种简单的方法可以将到达Nginx的跟踪像素请求转换为POST,该POST请求将向上游添加一些主体。

例如,如果我收到的GET请求http://domain.com/track/mail-id.gif,我想配置Nginx将其转换为http://upstream/mail-id带有某个正文的POST (比如说status:opened)。

怎么做到呢?

Aza*_*iev 5

只是想添加一个更详细的示例:

location /track/mail-id.gif {
    proxy_pass http://upstream/mail-id;
    proxy_method POST;
    proxy_set_body "status:opened";
    # if needed
    # proxy_set_header Some-Header value;
}
Run Code Online (Sandbox Code Playgroud)

proxy_pass此处提供了一个网址,以确保请求的确切行为。


Gre*_*Rox 0

您应该能够使用 Nginx 代理功能来实现此目的,特别是使用该proxy_method指令。

就像是:

location /track/mail-id.gif {
    proxy_pass http://upstream
    proxy_method POST
}
Run Code Online (Sandbox Code Playgroud)

有关 Nginx 代理指令的更多信息,请参阅http://nginx.org/en/docs/http/ngx_http_proxy_module.html 。