Semanas depois ... Consegui resolver o meu problema. A solução é:
proxy_redirect / $request_uri;
Assim, quando um usuário acessa foo.com/bar/ ele redireciona para foo.com/index.html
Isso estava acontecendo no redirecionamento 302 que o servidor proxy_pass estava emitindo.
A linha acima adicionada à minha configuração redirecionará foo.com/bar/ corretamente para o link que carrega a página index.html .
Configuração completa:
server_name bar;
location /bar/ {
proxy_pass http://127.0.0.1:3001/;
proxy_redirect / $request_uri;
}
Para referência, $ request_uri é igual ao local e subdiretório, por exemplo, foo.com/bar /