I'm trying to figure out if there's an easy way to convert a tracking pixel request that gets to Nginx into a POST that will go to an upstream with some added body.
for exmaple, if I get a GET request for http://domain.com/track/mail-id.gif
, I'd like to configure Nginx to convert it to a POST that goes to http://upstream/mail-id
with some body (let's say status:opened).
how can it be done?
Just wanted to add a more detailed example:
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;
}
Provided a url for proxy_pass
here, so to ensure the exact behaviour requested.
You should be able to use Nginx proxy functionality to achieve this, specifically with the proxy_method
directive.
Something like:
location /track/mail-id.gif {
proxy_pass http://upstream
proxy_method POST
}
See http://nginx.org/en/docs/http/ngx_http_proxy_module.html for more information about Nginx proxy directives.