Проксирование WebSocket через Nginx не даёт преимуществ - протокол бинарный и проксируется, как есть.
Лучше повесить приложение на отдельный порт и позволить клиентам подключаться напрямую.
Между тем, чтобы правильно настроить проксировние, воспользуйся официальной документацией:
Проксирование WebSocket
У тебя в конфигурации смешано все, ты настраиваешь буфра (зачем?) потом выключаешь буферизацию
proxy_buffering off;
Добавляешь лишние http заголовки. Используешь keepalive_timeout но он тут бесполезен... И так далее.