Seu problema é que você está veiculando seu conteúdo estático no servidor de aplicativos de back-end. Assim, quando o servidor de aplicativos de back-end não pode responder porque está ocupado, o Nginx prepara uma resposta 502. Sua configuração direciona o Nginx a servir um HTML específico nesse caso, o que, por sua vez, carrega mais conteúdo estático do Nginx. Essas solicitações são, então, intermediadas por proxy para o servidor de aplicativos, e os 502s também são retornados para eles também.
É uma boa ideia veicular conteúdo estático diretamente do Nginx, para simplificar o trabalho do servidor de back-end de se concentrar em servir o aplicativo.
Estruture sua configuração do Nginx para que o Nginx forneça os arquivos estáticos:
location / {
try_files $uri $uri/ @backend;
}
location @backend {
proxy_pass http://example.com;
}