Попробуйте сделать nginx -t и убедиться в том, что конфиг не содержит ошибок, и nginx его действительно применил. Какой у Вас дистрибутив? Секции конфига находятся в одном файле?
Сделайте access_log и error_log на разных сайтах в разные файлы, а не в один и тот же, и посмотрите в логах, к какому именно сайту идут обращения.
Я еще ни разу не встречал ситуации, в которой для nginx реально нужны были бы все ядра в системе. Даже если использовать сжатие - обычно приложение упирается не в nginx и не в нехватку процессора для nginx.
Поэтому нет большой разницы, как Вы укажете. Я вот предпочитаю, чтобы больших гроздьев процессов в системе не болталось, поэтому больше 4 воркеров у nginx не запускаю.
nginx обращается к бэкенду по HTTP 1.0, что несовместимо с WebSockets.
Последние версии nginx уже умеют работать с бэкендом по HTTP 1.1, попробуйте взять более новую версию nginx и включить для бэкенда директиву proxy_http_version 1.1;