Despliega tu sitio de Astro en is*hosting
is*hosting es un proveedor de alojamiento que ofrece VPS y servidores dedicados en más de 40 ubicaciones que puedes utilizar para alojar por tu cuenta un sitio de Astro estático o renderizado en el servidor (SSR). Un VPS es adecuado cuando tu sitio de Astro utiliza SSR y necesita un servidor persistente, conexiones a bases de datos, tareas en segundo plano, tareas programadas (cron) o rutas de API.
Requisitos previos
Sección titulada «Requisitos previos»Para desplegar tu sitio de Astro en un VPS de is*hosting, necesitarás:
- Un proyecto de Astro
- Un VPS de is*hosting ejecutando Ubuntu con acceso SSH y privilegios de
rootosudo - Un nombre de dominio que apunte a tu VPS
- Una versión de Node.js que cumpla con los requisitos mínimos de Astro instalada en tu VPS
Configuración del proyecto
Sección titulada «Configuración del proyecto»Tu proyecto de Astro se puede desplegar en un VPS de is*hosting como un sitio estático o como un sitio renderizado bajo demanda.
Sitio estático
Sección titulada «Sitio estático»Tu proyecto de Astro es un sitio estático de forma predeterminada. No necesitas ninguna configuración adicional de Astro para desplegar un sitio estático en un VPS de is*hosting.
Adaptador para el renderizado bajo demanda
Sección titulada «Adaptador para el renderizado bajo demanda»Para habilitar el renderizado bajo demanda en tu proyecto de Astro, agrega el adaptador de Node.js (EN) mediante el comando astro add. Esto instalará el adaptador y lo configurará en modo standalone en tu archivo astro.config.mjs en un solo paso.
npx astro add nodepnpm astro add nodeyarn astro add nodeCómo desplegar
Sección titulada «Cómo desplegar»Puedes desplegar tu sitio en un VPS de is*hosting compilándolo en el servidor y sirviéndolo mediante un servidor web.
Las siguientes instrucciones utilizan Nginx como servidor web y PM2 para mantener en ejecución el servidor de Node.js de un sitio con renderizado bajo demanda.
Configurar tu VPS
Sección titulada «Configurar tu VPS»-
Conéctate a tu VPS mediante SSH e instala tanto el servidor web como Git:
Ventana de terminal apt updateapt install nginx gitLos comandos del servidor de esta guía suponen que has iniciado sesión como
root. Si utilizas otra cuenta, ejecuta los comandos administrativos consudo. -
Clona tu proyecto de Astro en tu VPS, instala sus dependencias y compila tu sitio:
Ventana de terminal cd /var/wwwgit clone YOUR_REPOSITORY_URL astrocd astronpm installnpm run build
Desplegar un sitio estático
Sección titulada «Desplegar un sitio estático»-
Crea un archivo de configuración de Nginx en
/etc/nginx/sites-available/astropara servir la carpetadist/generada:/etc/nginx/sites-available/astro server {listen 80;server_name your.domain.com;root /var/www/astro/dist;index index.html;error_page 404 /404.html;location / {try_files $uri $uri/ $uri.html =404;}} -
Habilita la configuración de Nginx y recarga Nginx:
Ventana de terminal ln -s /etc/nginx/sites-available/astro /etc/nginx/sites-enabled/nginx -tsystemctl reload nginx
Desplegar un sitio con renderizado bajo demanda
Sección titulada «Desplegar un sitio con renderizado bajo demanda»-
Instala PM2 y utilízalo para iniciar el servidor de Node.js:
Ventana de terminal npm install -g pm2HOST=127.0.0.1 PORT=4321 pm2 start dist/server/entry.mjs --name astro-app -
Configura PM2 para reiniciar el servidor de Node.js después de un reinicio:
Ventana de terminal pm2 startup && pm2 save -
Crea un archivo de configuración de Nginx en
/etc/nginx/sites-available/astropara reenviar las solicitudes al servidor de Node.js:/etc/nginx/sites-available/astro server {listen 80;server_name your.domain.com;location / {proxy_pass http://127.0.0.1:4321;proxy_http_version 1.1;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;}} -
Habilita la configuración de Nginx y recarga Nginx:
Ventana de terminal ln -s /etc/nginx/sites-available/astro /etc/nginx/sites-enabled/nginx -tsystemctl reload nginx
Agregar HTTPS
Sección titulada «Agregar HTTPS»Una vez que tu dominio apunte al VPS, puedes utilizar Certbot para configurar HTTPS, tanto para un despliegue estático como para uno con SSR. Asegúrate de que los puertos 80 y 443 sean accesibles.
-
Instala Certbot y su complemento para Nginx:
Ventana de terminal apt install -y certbot python3-certbot-nginx -
Solicita un certificado para tu dominio:
Ventana de terminal certbot --nginx -d your.domain.comReemplaza
your.domain.comcon tu dominio y sigue las instrucciones. -
Prueba la renovación automática del certificado:
Ventana de terminal certbot renew --dry-run
Actualizar tu sitio
Sección titulada «Actualizar tu sitio»Para desplegar los cambios en tu sitio, descarga los últimos cambios del repositorio, instala las dependencias y vuelve a compilar el sitio:
cd /var/www/astrogit pullnpm installnpm run buildSi tu sitio utiliza renderizado bajo demanda, reinicia el proceso de PM2 para que los cambios surtan efecto:
pm2 restart astro-appRecursos Oficiales
Sección titulada «Recursos Oficiales»- Guía de is*hosting: despliega Astro en un VPS (estático y SSR)
- Centro de ayuda de is*hosting para VPS