Configuración de DNS y NginX para aplicaciones web en Django
Clase 11 de 22 • Curso de Despliegue de Aplicaciones Python en la Nube
Resumen
¿Por qué usar dominios en las aplicaciones web?
Acceder a una aplicación web mediante una dirección IP puede ser complicado y fácilmente olvidado. Para solucionar esto, los dominios como "google.com" permiten una forma sencilla y amigable de recordar las direcciones. Los servidores de nombres de dominio (DNS) desempeñan un papel crucial, convirtiendo un nombre de dominio en una dirección IP para facilitar el acceso a los sitios web.
¿Qué son los servidores DNS?
Los servidores DNS permiten la conversión de nombres de dominio en direcciones IP. Cada vez que se accede a un sitio web, el sistema busca la IP del servidor utilizando el DNS, proporcionando un acceso fluido al sitio cuando se escribe el nombre de dominio en un navegador.
¿Cómo crear un servidor básico y configurar DNS en una aplicación Django?
Vamos a explorar cómo implementar un servidor en una instancia local y configurarlo para una aplicación DJango:
¿Cómo iniciar un servidor local usando Django?
- Preparar el entorno local: Tenemos una aplicación Django ya preparada para deployment. Utilizaremos el servidor WSGI (o ASGI si deseas).
- Configurar el puerto: Ejecuta el proyecto en el puerto 80, que es el predeterminado para los accesos HTTP.
- Probar en el navegador: Accede desde el navegador utilizando la IP local y verifica el funcionamiento de la aplicación.
¿Cómo editar el archivo de hosts en el sistema local?
Para simular un DNS localmente:
- Abrir el terminal y editar [/etc/hosts]: Es obligatorio utilizar
sudo
ya que es un archivo de sistema. - Añadir una entrada para el dominio: Agrega una línea nueva con la IP
127.0.0.1
y el nombre del dominio local deseado como "deployewithpython.local". Esto redirigirá las solicitudes del dominio a la aplicación local. - Probar el acceso al dominio: Guarda y verifica si al ingresar el dominio en un navegador, se accede a la aplicación correctamente.
¿Cómo configurar un servidor DNS público?
Empleando CloudFlare o cualquier otro servicio DNS, puedes mapear dominios a IP para permitir acceso público a tu aplicación:
¿Cómo agregar un registro DNS en CloudFlare?
-
Accede al dashboard de CloudFlare: Necesitas tener un dominio previamente adquirido para estas configuraciones.
-
Configurar registros DNS:
- Tipo A: Se usa para enlazar una IP con un nombre de dominio.
- Tipo CNAME: Redirige a otro dominio en vez de a una IP.
-
Configurar el registro A:
- Asigna la IP de tu servidor al nombre de dominio principal usando
@
o el dominio deseado. - Guarda la configuración.
- Asigna la IP de tu servidor al nombre de dominio principal usando
-
Verificar usando el comando
dig
: Te permite confirmar que el dominio está apuntando correctamente a la IP designada.
¿Cómo realizar configuraciones avanzadas con Nginx?
Nginx es un potente servidor web que permite redirigir peticiones de dominio a aplicaciones específicas:
¿Cómo configurar Nginx para un dominio?
- Accede al directorio de configuración: En Ubuntu se localizan en
/etc/nginx/
. - Crear un archivo de configuración en
sites-available
:- Definir un bloque de servidor:
server { listen 80; server_name deployewithpython.com; location / { return 200 'Hola desde el archivo the conf'; add_header Content-Type text/plain; } }
- Definir un bloque de servidor:
- Habilitar el sitio: Crea un enlace simbólico hacia
sites-enabled
:sudo ln -s /etc/nginx/sites-available/deployewithpython.com /etc/nginx/sites-enabled/
- Verificar la configuración de Nginx: Usa el comando
nginx -t
para comprobar errores en configuración. - Reiniciar Nginx: Aplica los cambios y verifica accediendo mediante el dominio configurado.
Así, obtienes un flujo de trabajo efectivo para habilitar el acceso de tus aplicaciones a través de dominios, lo cual es fundamental para su correcta implementación pública en la web.