Tenho uma solução rápida que, acredito, proporcionaria uploads seguros para sites que exigem login.
Basicamente, você configura Authentication Based on Subrequest Result | NGINX Documentation para uploads. O único problema é que não consigo encontrar uma URL que retorne um 403/401 quando o requisito de login está ativado, então acessar um upload sem estar logado resulta em um erro 500. Isso só aconteceria se alguém tivesse uma URL de upload e tentasse acessá-la sem estar logado, então não parece ser tão grave.
É algo assim:
# JP
location = /auth {
internal;
proxy_pass http://discourse/categories;
proxy_pass_request_body off;
proxy_set_header Content-Length "";
proxy_set_header X-Original-URI $request_uri;
}
# END JP
location ~ ^/uploads/ {
auth_request /auth; #$JP
# NOTA: é realmente irritante que não possamos definir cabeçalhos
# no nível superior e herdar.
#