El servidor Apache solo responde a IP externa

El servidor Apache solo responde a IP externa

Estoy aprendiendo Django y quería probar alojarlo en una computadora con Ubuntu que tengo. Decidí servirlo con Apache y mod_wsgi. Conseguí que la mayoría de las cosas funcionaran, pero hay una cosa que me desconcierta. Puedo acceder al sitio web solo desde mi dirección IP externa, no desde, por ejemplo, 127.0.0.1 o mi dirección 192.168.xx.

Mi archivo django.conf en /etc/apache2/sites-available está

<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>

Si configuro ServerName en 127.0.0.1, la página solo se carga desde allí. También debo agregar que no "no se carga" exactamente cuando accedo desde otras ubicaciones, solo muestra una página de Apache titulada "Índice de /" sin contenido.

¿Qué impide que Apache sirva páginas en todos los casos y cómo puedo hacer que sirva páginas como 127.0.0.1, etc.? ¿Existe una mejor manera de alojarlo?

Respuesta1

Su respuesta está en apache2ctl -S: el sitio "predeterminado" de la instalación tiene prioridad cuando el Hostencabezado que envía el cliente HTTP no coincide ServerNamecon ServerAliasuno de los otros <VirtualHost>bloques del puerto.

Si desea que su sitio Django maneje todas las solicitudes al servidor, desactive el valor predeterminado:

a2dissite default

... luego reinicie Apache.

De lo contrario, si desea tener un poco más de matices acerca de que Django se haga cargo, puede agregar ServerAliasa la configuración de su <VirtualHost>:

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

información relacionada