A continuación encontrarás traducido al Castellano el artículo escrito por Gabriel Ludosanu y publicado originalmente en el Blog oficial de Xojo.
El despliegue de aplicaciones web creadas con Xojo ofrece a los desarrolladores unas rutas flexibles para su despliegue en producción. Para aquellos desarrolladores que priorizan una gestión mínima de la infraestructura, Xojo Cloud supone una solución totalmente auto-gestionada con escalado automático, SSL, y sin necesidad de mantenimiento del servidor. Sin embargo, para aquellos desarrolladores que requieren un control más granular sobre su entorno de despliegue, la implementación de un proxy inverso como Caddy proporciona un rendimiento de nivel empresarial al tiempo que simplifica las operaciones críticas.
Esta guía se centra en las configuraciones de Caddy de producción que simplifican los despliegues de aplicaciones Xojo auto-gestionadas, ofreciendo:
- Gestión de certificado TLS automático.
- Balanceo de carga nativo entre instancias.
- Configuración simplificada en comparación con proxies tradicionales.
- Optimización de cabeceras, especialmente afinadas para el framework de Xojo.
Aprenderás estrategias de configuración que, en algunas pruebas, optimiza los recursos hasta en un 40% en comparación con los proxies convencionales, al tiempo que se mantiene el rendimiento de Xojo.
Estrategias de Configuración Fundamentales
Configuración de Proxy Inverso Básico
yourdomain.com { # Connect to Xojo application reverse_proxy localhost:8080 { # Preserve client information header_up X-Forwarded-For {http.request.remote.host} header_up Host {http.request.host} } # Automate HTTPS tls admin@yourdomain.com }
Nota: La directiva header_up asegura que Xojo registre correctamente las IP de los clientes en los eventos web.
Balanceo de Carga entre Instancias
app.yourdomain.com { reverse_proxy localhost:8080 localhost:8081 localhost:8082 { load_balancer { policy round_robin health_interval 10s health_uri /health } # Timeouts for heavy processing lb_try_duration 30s } }
Medidas de Seguridad Fortalecidas
yourdomain.com { # Critical protection headers header { X-Content-Type-Options "nosniff" X-Frame-Options "DENY" Content-Security-Policy "default-src 'self'" } # Rate limiting for API endpoints route /api/* { rate_limit { zone api burst 100 period 10s } } }
Guiones de Despliegue de Producción
Servicio Systemd en Linux
/etc/systemd/system/xojo-caddy.service: [Unit] Description=Xojo Caddy Reverse Proxy After=network.target [Service] Type=simple User=caddy ExecStart=/usr/bin/caddy run --config /etc/caddy/Caddyfile Restart=on-failure RestartSec=5 [Install] WantedBy=multi-user.target
Si precisas de una guía más amplia, paso a paso, sobre cómo preparar tu servidor consulta nuestro tutorial sobre este tema: “Tutorial: Deploying Web Apps on Linux“. El anterior servicio systemd se integra a la perfección con dicho flujo de trabajo.
Paquete de despliegue Windows
Xojo-Caddy.bat: @echo off REM Start Xojo application instances start "Xojo Instance 1" /MIN XojoWebApp.exe --port=8080 start "Xojo Instance 2" /MIN XojoWebApp.exe --port=8081 REM Launch Caddy reverse proxy start "Caddy Proxy" /MIN caddy.exe run --config C:\caddy\Caddyfile Optimized Xojo-Caddy Template Save as Caddyfile in your deployment root: # Production-Grade Xojo Proxy Template yourdomain.com, www.yourdomain.com { # Automated HTTPS tls contact@yourdomain.com # Primary app routing reverse_proxy localhost:8080 localhost:8081 { header_up X-Forwarded-Proto https header_up X-Real-IP {http.request.remote} } # Static content handling handle /static/* { root * /var/www/static file_server } # Security headers header { Strict-Transport-Security "max-age=31536000" Referrer-Policy "strict-origin-when-cross-origin" } }
Conclusión
Caddy revoluciona el despliegue de las apps web Xojo al eliminar la complejidad de los proxy al tiempo que proporciona capacidades a nivel empresarial:
- Operaciones simplificadas: un único archivo de configuración sustituye a las configuraciones complejas de proxy.
- Seguridad automática: protección HTTPS continua sin mantenimiento.
- Escalado simplificado: el balanceo de carga incorporado crece al mismo ritmo que tu base de usuarios.
- Sobrecarga reducida: en las pruebas de rendimiento, 40% menos recursos en comparación con los proxies convencionales.
Implementa la plantilla Xojo-Caddy proporcionada para obtener un despliegue de producción en menos de 15 minutos. Monitoriza el rendimiento mediante el punto final /metrics proporcionado por Caddy y escala horizontalmente a medida que se incremente el tráfico.