A menos que eu tenha interpretado mal sua pergunta: basta configurar blocos de servidores para cada subdomínio e definir o proxy reverso correto para a raiz desse subdomínio, ou seja, algo como:
server {
server_name subdomain1.example.com;
location / {
proxy_pass http://hostname1:port1;
}
}
server {
server_name subdomain2.example.com;
location / {
proxy_pass http://hostname2:port2;
}
}