A solução padrão para isso é usar um servidor front-end que despacha as solicitações para o servidor "real" apropriado, geralmente com base no nome do host. Isso é chamado de proxy reverso . O Nginx é muito usado para isso. Comece com o tutorial .
Veja como a configuração ( /etc/nginx/nginx.conf
) de um proxy reverso com dois back-ends é semelhante:
server {
server_name java-app.example.com;
proxy_pass http://localhost:8000/;
}
server {
server_name python-app.example.com;
proxy_pass http://localhost:8080/;
}
É claro que existem muitas outras opções que podem ser úteis .