Is it possible to use nginx for this kind of setup? If no, is there a tool for achieving this behaviour?
Como você já observou, seu proxy reverso não sabe nada sobre o URI ou os cabeçalhos HTTP, pois essas informações são incluídas e criptografadas dentro do protocolo TLS. Os hosts virtuais baseados em nome não funcionariam com o TLS tão facilmente .
A única exceção notável a essa regra é a extensão Indicação do Nome do Servidor para TLS, mas isso precisaria de suporte no servidor, bem como todos clientes potenciais . NGNIX suporta SNI no lado do servidor, mas suponho que ainda precisaria terminar as conexões TLS para sua aplicação. HAproxy seria capaz de faça uma decisão de backend com base no nome de host fornecido pelo SNI sem encerrar o túnel - talvez você queira investigar isso.
Se você pudesse colocar as mãos em um único certificado que carregaria todas as combinações nome do host * .exemplo * .com ' como SAN , você pode configurar o NGNIX com este certificado para terminar todos os túneis, inspecionar os cabeçalhos e passar o tráfego dependendo dos valores como um proxy reverso. Esse tipo de solução tem a chance de ser apoiado por mais clientes em potencial , mas tem a desvantagem óbvia que o certificado precisa ser emitido novamente toda vez que você precisar adicionar ou remover um nome de host da lista.