Fundamentos de Deployment y Control de Versiones

1

Despliegue de Aplicaciones Python en la Nube con AWS

2

Conexión de Python con Servidores Web: WSGI y ASGI

3

Versionamiento Semántico y Control de Versiones en Git

4

Comandos Esenciales de Terminal para Despliegue y Configuración

5

Uso de Variables de Entorno en Python con Archivos .env

Configuración de Servidores en la Nube para Despliegue

6

Elección y Configuración de Servidores en la Nube

7

Creación de Instancias en AWS: Paso a Paso para Principiantes

8

Creación y Configuración de Instancias en AWS con Ubuntu

9

Conexión a Servidor mediante SSH y Llave .pem en Terminal Linux

10

Gestión de Paquetes y Configuración de Servidores en Ubuntu

11

Configuración de DNS y NginX para aplicaciones web en Django

12

Configuración de Certificados SSL con Certbot y Nginx

Administración y Optimización de Servidores para Producción

13

Configuración de Servidor para Despliegue de Aplicaciones Django

14

Configuración de UWSGI para Despliegue de Aplicaciones Python

15

Configuración de Proxy Reverso con Nginx y UWSGI en Python

16

Configuración de Logs en Nginx y UWSGI para Aplicaciones Python

17

Monitoreo de Errores en Django con Centry y Configuración de Logs

18

Configuración de Variables de Entorno en Servidor Django

Integración de Servicios Complementarios para Aplicaciones Python

19

Instalación y Configuración de PostgreSQL en Ubuntu para Django

20

Configuración de Instancias RDS en AWS para Bases de Datos

21

Configuración de Archivos Estáticos en Django y Nginx

Automatización y CI/CD para Despliegues Python

22

Automatización de Deployments con Ansible y GitHub Actions

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Configuración de DNS y NginX para aplicaciones web en Django

11/22
Recursos

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

  1. Preparar el entorno local: Tenemos una aplicación Django ya preparada para deployment. Utilizaremos el servidor WSGI (o ASGI si deseas).
  2. Configurar el puerto: Ejecuta el proyecto en el puerto 80, que es el predeterminado para los accesos HTTP.
  3. 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:

  1. Abrir el terminal y editar [/etc/hosts]: Es obligatorio utilizar sudo ya que es un archivo de sistema.
  2. 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.
  3. 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?

  1. Accede al dashboard de CloudFlare: Necesitas tener un dominio previamente adquirido para estas configuraciones.

  2. 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.
  3. Configurar el registro A:

    • Asigna la IP de tu servidor al nombre de dominio principal usando @ o el dominio deseado.
    • Guarda la configuración.
  4. 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?

  1. Accede al directorio de configuración: En Ubuntu se localizan en /etc/nginx/.
  2. 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;
          }
      }
      
  3. Habilitar el sitio: Crea un enlace simbólico hacia sites-enabled:
    sudo ln -s /etc/nginx/sites-available/deployewithpython.com /etc/nginx/sites-enabled/
    
  4. Verificar la configuración de Nginx: Usa el comando nginx -t para comprobar errores en configuración.
  5. 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.

Aportes 3

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Brindo por más cursos como este, me gustaría profundizar en nginx!
url del proyecto en django: <https://github.com/platzi/python-deployment-project.git>
Otro ejemplo es comprar un dominio en Godaddy, configurar las DNS desde su panel colocando la dirección ip pública que nos da la instancia de lanzada en AWS. Luego iternamente desplegamos nuestra app usando un proxy recursivo como Nginx.