O servidor Apache responde apenas ao IP externo

O servidor Apache responde apenas ao IP externo

Estou aprendendo Django e queria testar hospedá-lo em um computador Ubuntu que possuo. Decidi servi-lo com Apache e mod_wsgi. A maioria das coisas está funcionando, mas há uma coisa que me intriga. Posso acessar o site apenas a partir do meu endereço IP externo, não do meu endereço 127.0.0.1 ou 192.168.xx.

Meu arquivo django.conf em /etc/apache2/sites-available é

<VirtualHost *:80>

WSGIScriptAlias / /home/username/project

ServerName my_external_ip

Alias /media/ /home/username/project/media
Alias /static/ /home/username/project/static

<Directory /home/username/project>
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

Se eu definir ServerName como 127.0.0.1, a página será carregada apenas a partir daí. Além disso, devo acrescentar que ele não "não carrega" exatamente quando acesso de outros locais, apenas mostra uma página do Apache intitulada "Índice de /" sem conteúdo.

O que está impedindo o Apache de servir páginas em todos os casos, e como posso fazer com que ele sirva páginas como 127.0.0.1 etc.? Existe uma maneira melhor de hospedá-lo?

Responder1

Sua resposta está em apache2ctl -S- o site "padrão" da instalação tem precedência quando o Hostcabeçalho que o cliente HTTP envia não corresponde a um ServerNameou ServerAliasem um dos outros <VirtualHost>blocos na porta.

Se você deseja que seu site Django lide com todas as solicitações ao servidor, desative o padrão:

a2dissite default

... então reinicie o Apache.

Caso contrário, se você quiser ser um pouco mais sutil sobre o Django assumir o controle, você pode adicionar um a ServerAliasà configuração de seu <VirtualHost>:

ServerAlias internal.ip external.ip external.dns.name

informação relacionada