Eu provavelmente faria algo assim:
location /cloud/ {
proxy_pass http://localhost:8080/;
}
Observe a barra ao final / no final das diretivas location e proxy_pass [1]. Isso é semelhante a como o rsync funciona, como em, se a barra final existir, ele substituirá tudo depois. No seu caso:
http://proxy/cloud
solicitará ao upstream http://upstream:8080/
e qualquer subdiretório que o OwnCloud esteja usando, como por exemplo, seria solicitado como:
http://proxy/cloud/example
e solicitado como http://upstream:8080/example
Você não deve precisar de reescrever se estiver pegando o diretório / cloud antes de fazer proxy para o upstream.
E remova as outras configurações, pois elas não são necessárias para o que você deseja, a menos que você esteja usando o cabeçalho para algo, não acho que o redirecionamento esteja fazendo diferença no seu caso.
[1] Fonte: link