Isso é fácil se você usar a opção NameVirtualHost no Apache. Eu tenho uma resposta detalhada fornecida para outro usuário aqui . O conceito básico é que você estará criando dois VirtualHost configs diferentes para cada subdomínio. Depois de fazer isso, você pode personalizar a configuração dos dois subdomínios & alcançar a granularidade que você está procurando.
EDITAR: Adicionando detalhes sobre como configurar NameVirtualHost para os detalhes da pergunta específica dos pôsteres originais:
Em geral, você precisa primeiro ativar NameVirtualHost para a porta desejada. Eu suponho que você usará a porta 80, então encontre essa linha na sua configuração do Apache - pode ser em /etc/apache2/ports.conf - & definido como assim:
NameVirtualHost *:80
Certifique-se de que sua configuração do Apache - as chances são iguais de /etc/apache2/ports.conf como acima - esteja definida para listar para a porta 80. Qual deve ser o caso, mas adicionando aqui para referência:
Listen 80
Aqui é onde a mágica acontece. Mais uma vez, eu estou apenas fazendo o básico básico, então ajuste as configurações do servidor. Isso é para www.example.com :
<VirtualHost *:80>
ServerName www.example.com
ServerAlias www.example.com
<Location /app1>
ProxyPass http://192.168.1.20
</Location>
</VirtualHost>
E agora, para uat.example.com , crie uma nova configuração assim:
<VirtualHost *:80>
ServerName uat.example.com
ServerAlias uat.example.com
<Location /app2_uat>
ProxyPass http://192.168.1.30
</Location>
</VirtualHost>
Ao usar NameVirtualHost , você pode configurar duas configurações de domínio separadas associadas a um endereço IP. Mais uma vez, por favor reveja a resposta a que me liguei acima para mais detalhes.