Аналогичная ситуация. По прошествии двух дней разобрался. Пытался редиректить на внутренние виртуальные хосты, однако все запросы падали на один виртуальный хост. Помогало только разбрасывание по разным портам. Но это не правильно!
Методом тыка выяснил, что nginx для определения к какому хосту адресован запрос, нужно передавать http-заголовок Host.
В моем случае помогло
proxy_set_header Host $reproxy_host;
, где $reproxy_host - адресуемый виртуальный хост.