0% encontró este documento útil (0 votos)
1 vistas6 páginas

Azure Python

El documento detalla los pasos para desplegar una aplicación web en Python (Flask) utilizando PostgreSQL y Nginx en una máquina virtual Ubuntu en Microsoft Azure. Incluye requisitos previos, creación de la máquina virtual, instalación de dependencias, configuración de PostgreSQL y Nginx, y cómo probar la aplicación. También se mencionan opciones adicionales como agregar un dominio propio y HTTPS, y el uso de servicios gestionados.

Cargado por

Satori Tamayochi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas6 páginas

Azure Python

El documento detalla los pasos para desplegar una aplicación web en Python (Flask) utilizando PostgreSQL y Nginx en una máquina virtual Ubuntu en Microsoft Azure. Incluye requisitos previos, creación de la máquina virtual, instalación de dependencias, configuración de PostgreSQL y Nginx, y cómo probar la aplicación. También se mencionan opciones adicionales como agregar un dominio propio y HTTPS, y el uso de servicios gestionados.

Cargado por

Satori Tamayochi
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como ODT, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

Despliegue en Microsoft Azure: Flask +

PostgreSQL + Nginx
Objetivo:
Desplegar una aplicación web hecha en Python (Flask), usando PostgreSQL como base de datos y
Nginx como proxy inverso, todo en una máquina virtual Ubuntu en Microsoft Azure .

Requisitos previos
 Cuenta en Azure Portal
 Tener activa la suscripción gratuita con $200 USD
 Tu código listo localmente (el mismo que ya
implementaste en Ubuntu)
 Conocimiento básico de terminal Linux

1. Crear una Máquina Virtual en Azure


Paso 1: Ir a "Virtual Machines"
• En Azure Portal → Menú ☰ → Virtual Machines → Crear → Máquina virtual

Paso 2: Configurar los siguientes campos:


Nombre flask-app-server
Región Selecciona algo cerca de ti (ej.Este de EE. UU.)
Imagen Ubuntu Server 22.04 LTS
Tamaño B1s(gratuito dentro del límite gratuito)
Puerto de entrada público HTTP (80)yHTTPS (443)
Autenticación Usa SSH (si trabajas desde Linux/Mac) o Contraseña (si usas Windows)
✅ El tamaño B1s está incluido en el Tier Gratuito de Azure.

Paso 3: Crear la VM
Una vez creada, copia la Dirección IP pública asignada. La usarás para acceder desde internet.

2. Conectar a la VM vía SSH


Desde tu terminal local:
bash
1
ssh usuario@tu_ip_publica

3. Instalar dependencias necesarias


bash

sudo apt update && sudo apt upgrade -y

sudo apt install python3 python3-pip python3-venv nginx postgresql postgresql-contrib git -y

4. Subir tu código a la VM
Puedes usar Git si tu proyecto está en GitHub/GitLab:
bash
1
2
git clone https://github.com/tuusuario/tuprojecto.git
cd tuproyecto

O subirlo manualmente con scp desde tu PC local:

bash
1
scp -r ./mi_app_web usuario@tu_ip_externa:/home/usuario/

5. Configurar entorno Python


bash
1
2
3
4
cd mi_app_web
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Si no tienes requirements.txt, instala manualmente:

bash
1
pip install flask gunicorn psycopg2-binary
6. Configurar PostgreSQL
bash
1
sudo -u postgres psql

Dentro de psql:

sql
1
2
3
4
5
6
7
CREATE DATABASE tu_basedatos;
CREATE USER tu_usuario WITH PASSWORD 'tu_contraseña';
ALTER ROLE tu_usuario SET client_encoding TO 'utf8';
ALTER ROLE tu_usuario SET default_transaction_isolation TO 'read committed';
ALTER ROLE tu_usuario SET timezone TO 'UTC';
GRANT ALL PRIVILEGES ON DATABASE tu_basedatos TO tu_usuario;
\q

Edite su archivo config.py o app.py con las credenciales correctas.

7. Probar la aplicación con Gunicorn


bash
1
gunicorn --bind 0.0.0.0:5000 app:app

Desde tu navegador visita:


1
http://tu_ip_publica:5000

Presiona Ctrl+C para detener.

8. Configurar Gunicorn como servicio systemd


Crea el archivo:
bash
1
sudo nano /etc/systemd/system/flaskapp.service

Contenido:
ini
1
2
3
4
5
6
7
8
9
10
11
12
13
[Unit]
Description=Gunicorn instance for Flask App
After=network.target

[Service]
User=tu_usuario
Group=www-data
WorkingDirectory=/home/tu_usuario/mi_app_web
Environment="PATH=/home/tu_usuario/mi_app_web/venv/bin"
ExecStart=/home/tu_usuario/mi_app_web/venv/bin/gunicorn --workers 3 --bind unix:flaskapp.sock
-m 007 app:app

[Install]
WantedBy=multi-user.target

Guarda y ejecuta:
bash
1
2
3
sudo systemctl daemon-reload
sudo systemctl start flaskapp
sudo systemctl enable flaskapp
9 Configurar Nginx como proxy inverso
bash
1
sudo nano /etc/nginx/sites-available/flaskapp

Contenido:
nginx
1
2
3
4
5
6
7
8
9
10
11
server {
listen 80;
server_name tu_ip_publica;

location / {
proxy_pass http://unix:/home/tu_usuario/mi_app_web/flaskapp.sock:/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

Activa la configuración:
bash
1
2
3
sudo ln -s /etc/nginx/sites-available/flaskapp /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

¡Listo!
Ahora puedes acceder a tu aplicación desde cualquier lugar:
1
http://tu_ip_publica

📝 Notas importantes
• Al igual que en GCP, tu IP pública puede cambiar al reiniciar la VM. Para evitarlo, ve a:
• Direcciones IP públicas → Asigna una dirección fija
• Puedes automatizar el proceso con scripts, Docker o incluso usar Azure App Services
(menos flexible pero más rápido)

¿Qué más podemos hacer?


¿Te gustaría ahora?
• Agregar dominio propio y HTTPS con Let's Encrypt
• Usar Azure Database for PostgreSQL (servicio gestionado)
• Hacer respaldos automáticos
• Preparar una guía paso a paso para tus alumnos

Dime cómo quieres seguir


¡Estoy aquí para ayudarte con lo que necesites! 😊
Ahora dejame leer esto

Qwen3-235B-A22B7:53 pm

¡Perfecto! Tómate tu tiempo para revisar la información. Si tienes dudas, necesitas ayuda con algún
paso específico o quieres adaptar esto para tus estudiantes, estaré aquí para ti.
Éxito en tu implementación en Azure ☁️
¡Cuando estés listo, seguimos! 😊

También podría gustarte