Overall I agree with Andreas, but...
... it always depends on and is possible.
First you have to configure NGINX to buffer the uploads before they are handed over to Zope. This is independent of Zope/Plone and well documented.
Second - for sure - you have to use a "modern" Zope and Plone with blob storage. Ensure blobs on clients are not send over the zeo connection, but use some mount (NFS, some storage system, ...): use shared blobs configuration.
Third, if you plan to scale and want to reduce internal bandwidth you might want to have a look at collective.xsendfile.
Fourth, dependent on you case, wildcard.media may become handy.
and fifth - have your monitoring setup (munin or similar) to check system health, bandwidth, ... to able to detect any problem space early.