Files
FRASA-CAS/nginx/nginx.conf
Consult AS Technology 0fb92364d8 feat: infraestructura de produccion (docker-compose, nginx, backup)
- docker-compose: 4 apps + api + postgres/redis (red interna, sin puertos
  expuestos), healthchecks, restart policies, volumenes
- nginx: client_max_body_size 10m, headers X-Forwarded, webroot certbot,
  certs montados desde /etc/letsencrypt (renovacion sin copiar)
- scripts/backup.sh: sqlite/pg_dump + uploads con retencion 30 dias
- README con instrucciones de deploy y pendientes
2026-08-21 23:42:24 +00:00

64 lines
2.1 KiB
Nginx Configuration File

# FRASA Ecosystem — reverse proxy
# Las apps se construyeron con base path (/quote/, /client/, /pay/);
# el proxy conserva la URI completa (sin slash final en proxy_pass).
# HTTP → HTTPS (excepto el challenge de Let's Encrypt)
server {
listen 80;
server_name frasadesarrollos.ddns.net;
location /.well-known/acme-challenge/ {
root /var/www/certbot;
}
location / {
return 301 https://$server_name$request_uri;
}
}
server {
listen 443 ssl;
server_name frasadesarrollos.ddns.net;
ssl_certificate /etc/letsencrypt/live/frasadesarrollos.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/frasadesarrollos.ddns.net/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1.2 TLSv1.3;
# Uploads de hasta 10MB (expedientes de clientes)
client_max_body_size 10m;
# API Gateway
location /api/ {
proxy_pass http://api:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Webhooks de Monday (mismo upstream, ruta explícita para claridad)
location = /api/webhooks/monday {
proxy_pass http://api:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Apps web (cada contenedor sirve su SPA con su base path)
location /quote/ { proxy_pass http://cotizador:80; proxy_set_header Host $host; }
location /client/ { proxy_pass http://alta-clientes:80; proxy_set_header Host $host; }
location /pay/ { proxy_pass http://cobranza:80; proxy_set_header Host $host; }
# Landing (raíz)
location / {
proxy_pass http://landing:80;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}