Como você precisa examinar o cabeçalho Host
em solicitações HTTP (a menos que tenha vários endereços IP, então subdomain.example.com
pode ter um endereço dedicado), você precisa de algo que lide com HTTP. Então nginx é definitivamente uma boa escolha. Você precisa configurá-lo como um "proxy reverso".
Quando o proxy reverso receber uma solicitação, ele será encaminhado (internamente) para o serviço "upstream" especificado. A resposta do serviço será então devolvida ao cliente. O cliente não sabe nada sobre isso.
Configurar um proxy reverso é super fácil em Apache e nginx .