Your post is moderately unclear. I don't think you're referring to nginx fastcgi caching, but you could be.
Nginx does what you tell it to do. If you're using proxy_pass then my understanding is it just passes the connection to the next server, it doesn't receive the upload then send it on itself. ie nginx acts like a connection proxy.
If you're talking about nginx fastcgi caching, then you just disable it. The following disables caching in two ways - for POSTs, and based on a set of rules. Use whichever bits you think suitable.
server {
...
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
# Don't cache uris containing the following segments.
if ($request_uri ~* "/wp-admin/|/admin-*|/purge*|/xmlrpc.php|wp-.*.php|/feed/|sitemap(_index)?.xml") {
set $skip_cache 1;
}
# Don't use the cache for logged in users or recent commenters
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in|code") {
set $skip_cache 1;
}
location ~ \.(hh|php)$ {
fastcgi_cache CACHE_NAME;
fastcgi_cache_valid 200 1440m;
fastcgi_cache_methods GET HEAD;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
}