O que você está tentando fazer é um alias de servidor aqui.
Opção A (feia e suja)
Você precisa editar o arquivo /etc/hosts
para isso
por exemplo.
${IP} foo foo.com
então você poderá
curl foo -H 'Host: foo.com'
O cabeçalho do host é necessário porque o alias do vhost é foo.com
Opção B (limpa e agradável)
Crie um alias de servidor, dependendo do seu servidor web, pode ser uma configuração diferente.
No meu httpd config do apache eu uso:
/etc/httpd/sites-available
- contém a configuração de cada vhost
/etc/httpd/sites-enabled
- contém os links simbólicos para os arquivos de configuração disponíveis no site, dessa forma eu posso ativar / desativar vhosts sem modificar ou renomear os arquivos em sites disponíveis, eu só preciso desvincular para derrubar um vhost
e eu modifiquei o conf
/etc/httpd/conf/httpd.conf
[...]
IncludeOptional sites-enabled/*.conf'
[...]
então vamos dizer que eu tive
/etc/httpd/sites-available/foo.com.conf
e uma versão com link simbólico em /etc/httpd/sites-enabled/foo.com.conf
faça
cp /etc/httpd/sites-available/foo.com.conf /etc/httpd/sites-available/foo.conf
modifique foo.conf
para corresponder a isso:
[...]
ServerName foo
ServerAlias foo
[...]
e depois
ln -s /etc/httpd/sites-available/foo.conf /etc/httpd/sites-enabled/foo.conf
finalmente reinicie o apache:
systemctl restart httpd
Observação todas essas ações podem exigir raiz ou sudo (usuário avançado)
Supondo que seu sistema tenha um servidor DNS, nada mais seria necessário; caso contrário, o arquivo / etc / hosts precisará ser modificado também, mas quando você enrolar, não será necessário passar um cabeçalho de host, pois o alias do vhost será foo.
i.e. Nesse caso, curl http://foo
funcionará bem, enquanto na opção A você precisará de um cabeçalho de host também.