Você não pode fazer isso no nível do DNS, porque o DNS só mapeia nomes para endereços IP e não tem conhecimento de todas as portas TCP.
Existem várias soluções (um proxy reverso, vários endereços IP ...), mas o mais simples seria configurar todos os sites para escutar na porta 80 e depois distingui-los usando cabeçalhos de host; já que você está usando HTTP em vez de HTTPS, isso não deve causar nenhum problema.
Você está no Ubuntu, então provavelmente está usando o Apache; Os Hosts Virtuais são o caminho a seguir.