Por que o Nginx não inicia depois de eu colar o bloco com SSL?
Na maioria dos casos é porque os arquivos apontados por `ssl_certificate` e `ssl_certificate_key` ainda não existem no servidor. O Nginx valida esses caminhos ao carregar a configuração, então é preciso emitir o certificado primeiro (por exemplo com Certbot) e só depois usar o bloco 443.
Qual a diferença entre o location de site estático e o de SPA?
O estático termina com `=404`, devolvendo um erro real quando o arquivo não existe; a SPA termina redirecionando para `/index.html`, então rotas inexistentes carregam a mesma página com status 200 em vez de um 404, porque quem decide se a rota é válida é o JavaScript do lado do cliente.
Preciso escutar IPv6 separadamente no Nginx?
Sim, cada bloco `listen` cobre uma família de endereço só; por isso o bloco gerado sempre tem um par de diretivas, `listen 443 ssl` para IPv4 e `listen [::]:443 ssl` para IPv6, repetido também na porta 80 quando o redirecionamento HTTP está ativo.
Por que o proxy reverso precisa do cabeçalho Upgrade?
As linhas `proxy_set_header Upgrade $http_upgrade` e `Connection "upgrade"` são o que permite uma conexão WebSocket sobreviver ao proxy, trocando de HTTP normal para o protocolo de upgrade sem o Nginx derrubar a conexão no meio do caminho.