[{"data":1,"prerenderedAt":137},["ShallowReactive",2],{"seo-verification":3,"blog-desplegar-aplicacion-astro-en-un-vps-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-desplegar-aplicacion-astro-en-un-vps-es",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":82,"ctaBody":83,"ctaButton":84,"ctaUrl":85,"relatedPosts":86},52,"desplegar-aplicacion-astro-en-un-vps",{"fr":12,"en":13,"ar":14,"es":10},"deployer-astro-vps","deploying-an-astro-application-on-a-vps","نشر-تطبيق-astro-على-خادم-vps","Desplegar una aplicación Astro en un VPS","Despliegue un sitio Astro en un VPS Cloud: build estático o SSR con el adaptador Node, Docker, Nginx y SSL. Guía para desarrolladores front.",4,1,false,"2026-04-29T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[28],{"id":17,"name":23,"slug":24,"color":25,"icon":26},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-astro-vps-poster.svg",{"categorySlug":33,"appSlug":34},"desarrollo","astro-stack","Astro genera por defecto un sitio totalmente estático —nada que ejecutar en cada visita—, pero también sabe renderizar páginas del lado del servidor mediante su adaptador Node. Según su necesidad, sirve simples archivos HTML o un verdadero servidor SSR. Veamos los dos enfoques en un VPS, con reverse proxy y caché.",[37,41,51,54,76,79],{"type":38,"title":39,"body":40},"h2","Por qué autoalojar Astro en un VPS","Astro tiene una particularidad: puede producir un sitio 100 % estático (`output: 'static'`) o una aplicación con renderizado en servidor bajo demanda (`output: 'server'` mediante `@astrojs\u002Fnode`). Esta dualidad hace que el VPS resulte muy pertinente. En estático, sirve directamente archivos HTML desde Nginx, sin ningún proceso Node: rendimiento máximo y huella mínima. En SSR, lanza un servidor Node que renderiza las páginas dinámicamente, útil para contenidos personalizados o para endpoints de API integrados. En un VPS, elige su estrategia sin quedar encerrado en el modelo impuesto por una plataforma de despliegue front. También controla la caché HTTP, las cabeceras de seguridad y la compresión Brotli, allí donde los alojamientos front gestionan eso como una caja negra.",{"type":42,"title":43,"items":44},"ul","Beneficios concretos",[45,46,47,48,49,50],"Libertad del modo de salida: estático puro o SSR Node, o incluso híbrido por ruta","En estático, Nginx sirve los archivos sin ningún proceso Node: nada que ejecutar por petición","Control total de la caché HTTP, de las cabeceras de seguridad (CSP, HSTS) y de la compresión Brotli","Sin límite de ancho de banda ni cuota de peticiones impuestos por una plataforma front","Endpoints de API de Astro alojados en el mismo dominio, sin función serverless de terceros","Despliegue reproducible mediante Docker: el mismo build en local y en producción",{"type":38,"title":52,"body":53},"Requisitos de hardware y software","Un sitio Astro estático cabe en el VPS más pequeño imaginable: 1 vCPU y 1 GB de RAM bastan de sobra, ya que Nginx solo sirve archivos. En modo SSR, prevea 2 GB para el proceso Node y los picos de renderizado. Instale Node.js 20 LTS para construir (o construya en CI), Docker si lo contenedoriza, y Nginx como frontal. Apunte `mondomaine.com` y `www.mondomaine.com` a la IP del VPS. Cuente con 5 GB de disco; la carpeta `dist\u002F` de un sitio estático pesa normalmente unos pocos MB.",{"type":55,"title":56,"steps":57},"steps","Despliegue paso a paso",[58,61,64,67,70,73],{"title":59,"body":60},"Elegir el modo de salida","En `astro.config.mjs`, defina `output: 'static'` para un sitio de contenido, o `output: 'server'` con `adapter: node({ mode: 'standalone' })` si necesita SSR. Esta elección condiciona todo el resto del despliegue.",{"title":62,"body":63},"Construir la aplicación","Ejecute `npm run build`. En estático, obtiene una carpeta `dist\u002F` con el HTML, el CSS y el JS listos para servir. En SSR, obtiene además un `dist\u002Fserver\u002Fentry.mjs` que ejecutar con Node.",{"title":65,"body":66},"Servir el estático con Nginx (modo estático)","Apunte la directiva `root` de su vhost a `\u002Fvar\u002Fwww\u002Fastro\u002Fdist` y active `try_files $uri $uri\u002F \u002F404.html;`. Añada `gzip on;` y cabeceras `Cache-Control` largas en los assets versionados. No hace falta ningún contenedor.",{"title":68,"body":69},"Contenedorizar el servidor Node (modo SSR)","Para el SSR, cree un Dockerfile basado en `node:20-alpine` que copie `dist\u002F` y lance `node .\u002Fdist\u002Fserver\u002Fentry.mjs`. Exponga el puerto 4321 y arranque con `docker compose up -d`. Nginx hará después un `proxy_pass` hacia ese puerto.",{"title":71,"body":72},"Configurar el reverse proxy y la compresión","Tanto si está en estático como en SSR detrás de Node, declare el vhost Nginx con `www` redirigido al dominio apex. Active Brotli si el módulo está disponible, para obtener assets aún más ligeros que con gzip.",{"title":74,"body":75},"Activar el SSL","Ejecute `certbot --nginx -d mondomaine.com -d www.mondomaine.com`. Fuerce la redirección a HTTPS y añada la cabecera `Strict-Transport-Security`. Valide el despliegue con una prueba de Lighthouse desde su navegador.",{"type":77,"body":78},"tip","Incluso para un sitio SSR, aproveche el renderizado híbrido de Astro: marque las páginas estáticas con `export const prerender = true` para que se generen en el build y las sirva directamente Nginx, reservando el proceso Node únicamente para las rutas realmente dinámicas. Así reduce drásticamente la carga del servidor. Y coloque una caché `proxy_cache` de Nginx delante de las páginas SSR que cambian poco, para absorber los picos de tráfico.",{"type":38,"title":80,"body":81},"Desplegar Astro en un clic desde el Marketplace","El Marketplace ServOrbit ofrece una plantilla **Astro Stack** que configura automáticamente Node.js LTS, PM2 y Nginx en su VPS. En unos minutos, su entorno de producción está listo para acoger su aplicación Astro — en modo estático o en SSR — sin configuración manual.\n\nComparado con la instalación descrita en esta guía, la plantilla se encarga de la puesta en marcha inicial y le permite empezar directamente en la etapa «construya su aplicación y transfiérala».","Su entorno Astro listo en unos minutos","La plantilla Astro Stack configura automáticamente Node.js LTS, PM2 y Nginx — listo para acoger su aplicación Astro en modo estático o en SSR.","Desplegar mi Astro Stack","\u002Fmarketplace\u002Fdesarrollo\u002Fastro-stack",[87,104,121],{"id":88,"slug":89,"slugs":90,"title":94,"excerpt":95,"readTime":17,"views":96,"isPinned":19,"publishedAt":97,"updatedAt":21,"category":98,"categories":99,"featuredImage":29,"bgImage":30,"posterImage":101,"relatedSolution":102},5,"desplegar-laravel-en-un-vps",{"fr":91,"en":92,"ar":93,"es":89},"deployer-laravel-vps","deploying-laravel-on-a-vps-a-production-guide","نشر-laravel-على-خادم-vps-دليل-الإنتاج","Desplegar Laravel en un VPS: guía de producción","Ponga Laravel en producción en un VPS: PHP, workers, caché, base de datos, reverse proxy y HTTPS bien configurados.",0,"2026-02-09T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[100],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":26,"appSlug":103},"laravel-stack",{"id":105,"slug":106,"slugs":107,"title":111,"excerpt":112,"readTime":113,"views":96,"isPinned":19,"publishedAt":114,"updatedAt":21,"category":115,"categories":116,"featuredImage":29,"bgImage":30,"posterImage":118,"relatedSolution":119},43,"desplegar-una-aplicacion-nodejs-en-un-vps",{"fr":108,"en":109,"ar":110,"es":106},"deployer-nodejs-vps","deploy-a-nodejs-application-on-a-vps","نشر-تطبيق-nodejs-على-vps","Desplegar una aplicación Node.js en un VPS","Despliegue una aplicación Node.js en producción en un VPS: PM2, reverse proxy Nginx, SSL Let's Encrypt y arranque automático con el sistema.",3,"2026-05-08T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[117],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":33,"appSlug":120},"nodejs-stack",{"id":122,"slug":123,"slugs":124,"title":128,"excerpt":129,"readTime":113,"views":88,"isPinned":19,"publishedAt":130,"updatedAt":21,"category":131,"categories":132,"featuredImage":29,"bgImage":30,"posterImage":134,"relatedSolution":135},44,"desplegar-una-aplicacion-django-en-un-vps",{"fr":125,"en":126,"ar":127,"es":123},"deployer-django-vps","deploy-a-django-application-on-a-vps","نشر-تطبيق-django-على-vps","Desplegar una aplicación Django en un VPS","Despliegue Django en un VPS: Gunicorn, Nginx, PostgreSQL, Docker y SSL. Guía completa para desarrolladores Python que quieren autoalojar.","2026-05-07T00:00:00+00:00",{"id":17,"name":23,"slug":24,"color":25,"icon":26},[133],{"id":17,"name":23,"slug":24,"color":25,"icon":26},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":33,"appSlug":136},"django",1789665014938]