Тут проблема не в nginx'e, пишите в списки рассылки ядрер linux,
freebsd чтобы меняли логику сокетов - если прослушивается 0.0.0.0 и
1.2.3.4, все запросы пришедшие на 1.2.3.4 все равно направлять на
0.0.0.0.
Как раз для сокетов это очень правильное поведение. А для HTTP - нелогично.
Почему же?
Если есть два сервера
server_name *.domain.ru
и
server_name old.domain.ru
описанных именно в этом порядке
и запрос приходит на old.domain.ru - в каком сервере логично этот запрос
отработать?