Azure Python
Azure Python
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
Paso 3: Crear la VM
Una vez creada, copia la Dirección IP pública asignada. La usarás para acceder desde internet.
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
bash
1
scp -r ./mi_app_web usuario@tu_ip_externa:/home/usuario/
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
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)
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! 😊