«Mi VPS ya aloja una web, ¿y ahora qué hago con la segunda?». Si alguna vez te hiciste esa pregunta, estás en el lugar correcto. Cuando empezás a tener clientes o proyectos propios, el servidor se llena de ideas y la tentación de abrir una cuenta nueva por cada web es enorme.
Sin embargo, no hace falta: con la configuración adecuada, un único VPS atiende todos tus dominios al mismo tiempo, cada uno con su carpeta, sus registros y su certificado de seguridad. Te lo explicamos paso a paso, con comandos listos para copiar y comentarios en lenguaje simple. Es una guía de nivel intermedio, pensada para quienes ya se animaron a entrar por SSH.
Antes de empezar: lista de requisitos
Esta guía es de nivel intermedio: no hace falta ser administrador de sistemas, pero sí sentirte cómodo escribiendo comandos en una terminal. Antes de arrancar, confirmá que tenés lo siguiente:
- Un VPS con Ubuntu 22.04 o superior, al que ya te podés conectar por SSH.
- Un usuario común con permisos de
sudo(trabajar siempre como root es una mala costumbre). - Al menos dos dominios propios; en los ejemplos usamos tutienda.com y tublog.net.
- La IP pública de tu VPS. Acá usamos
203.0.113.10como ejemplo: poné la tuya.
Si todavía no sabés conectarte por SSH, hacé primero esa práctica y después volvé. Todo lo que sigue se apoya en eso.
Cómo hace un VPS para atender muchos dominios
Cuando alguien escribe tutienda.com en su navegador, la petición llega a la IP de tu VPS. Ahí ocurre el truco: junto con la petición viaja el nombre del dominio, y Nginx lo compara con una lista de reglas. Cada regla es un virtual host e indica qué carpeta mostrar, qué certificado usar y dónde guardar los registros.
Esto tiene tres ventajas claras:
- Pagás y mantenés un solo servidor.
- Cada web queda aislada en su propia carpeta y configuración.
- Sumar un sitio nuevo es copiar y adaptar un archivo, no volver a empezar.
Pensando en tus clientes y proyectos
Si alojás sitios de otras personas, la prolijidad es parte del servicio. Armá una carpeta y un archivo de configuración por cliente, con nombres que coincidan con el dominio, y llevá una planilla simple con los datos clave: dominio, fecha de vencimiento, quién lo administra y dónde están los respaldos. Cuando un cliente te escriba por un problema, vas a encontrar todo en segundos.
Para tus ejemplos y pruebas, usá dominios genéricos con extensiones .com, .net u .org, que funcionan sin diferencias en el servidor. Y una recomendación práctica: antes de mover el dominio de un cliente a tu VPS, probá todo con una web temporal, verificá los certificados y recién entonces cambiá los DNS.
Paso 1: instalá Nginx en tu VPS
Conectate por SSH y actualizá la lista de paquetes. Después instalá Nginx, el programa que va a atender las visitas, y dejalo activo:
sudo apt update
sudo apt install nginx -y
sudo systemctl enable --now nginx
Para confirmar que quedó funcionando, ejecutá systemctl status nginx: tiene que decir active (running). Después abrí en el navegador la IP de tu VPS y vas a ver la página «Welcome to nginx». Si no carga, revisá el firewall. Importante: permití primero SSH, así no te quedás afuera del servidor.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
Esos comandos abren los puertos 80 (HTTP) y 443 (HTTPS) y mantienen abierto el 22 de SSH.
Paso 2: una carpeta por cada sitio
Para no mezclar archivos, cada web va en su propia carpeta dentro de /var/www. Es la convención más usada y facilita muchísimo los backups. Creá la estructura y asigná los permisos para que puedas editar los archivos y Nginx pueda leerlos:
sudo mkdir -p /var/www/tutienda.com/public_html
sudo mkdir -p /var/www/tublog.net/public_html
sudo chown -R $USER:www-data /var/www/tutienda.com /var/www/tublog.net
sudo chmod -R 755 /var/www
Por último, guardá una página de prueba distinta en cada carpeta. Es un truco simple pero muy útil: si después ves el texto equivocado en el navegador, sabés enseguida dónde está el error.
echo '<h1>Hola, soy tutienda.com</h1>' | tee /var/www/tutienda.com/public_html/index.html
echo '<h1>Hola, soy tublog.net</h1>' | tee /var/www/tublog.net/public_html/index.html
Paso 3: escribí un bloque server por dominio
En Nginx, cada dominio tiene su propio bloque server. Abrí un archivo nuevo en /etc/nginx/sites-available/ con el nombre exacto de tu dominio, por ejemplo sudo nano /etc/nginx/sites-available/tutienda.com, y completalo así:
server {
listen 80;
listen [::]:80;
server_name tutienda.com www.tutienda.com;
root /var/www/tutienda.com/public_html;
index index.html index.htm;
access_log /var/log/nginx/tutienda.com.access.log;
error_log /var/log/nginx/tutienda.com.error.log;
location / {
try_files $uri $uri/ =404;
}
}
Esto le dice a Nginx: «cuando llegue una visita pidiendo tutienda.com o www.tutienda.com, mostrá los archivos de esa carpeta y anotá lo que pase en estos dos registros». Repetí todo el proceso para tublog.net. Si te equivocás en el nombre de una carpeta, el sitio va a responder con un error 404, así que revisá bien cada ruta.
Paso 4: activá los sitios y probá la configuración
Un archivo en sites-available todavía no hace nada: hay que «encenderlo» con un enlace simbólico en sites-enabled. Después probamos la sintaxis y recargamos:
sudo ln -s /etc/nginx/sites-available/tutienda.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/tublog.net /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
El comando nginx -t revisa la configuración sin tocar nada. Si responde syntax is ok y test is successful, el reload aplica los cambios. Si marca un error, te indica el archivo y la línea: casi siempre es un punto y coma olvidado o una llave sin cerrar. Usá reload en lugar de restart, porque no corta las visitas que están conectadas en ese momento.
Paso 5: hacé que los dominios encuentren tu VPS
Hasta acá el servidor está listo, pero los dominios todavía no saben dónde queda. Entrá a la zona DNS de cada uno y cargá estos registros:
- Un registro A con host
@y como valor la IP de tu VPS. - Un registro A con host
wwwy el mismo valor (también podés usar un CNAME que apunte al dominio principal).
Guardá los cambios y esperá. Con estos comandos comprobás qué IP está viendo el mundo:
dig +short tutienda.com
dig +short www.tutienda.com
dig +short tublog.net
Cuando coincida con la tuya, ya podés probar. Abrí cada dominio en el navegador y verificá que muestre su propio mensaje de bienvenida.
Paso 6: activá el candado de seguridad (SSL)
Con Nginx y Certbot, activar SSL en cada virtual host lleva un par de minutos. Certbot comprueba que el dominio realmente apunta a tu servidor, obtiene el certificado y modifica solo el bloque del sitio correspondiente:
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d tutienda.com -d www.tutienda.com
sudo certbot --nginx -d tublog.net -d www.tublog.net
sudo certbot renew --dry-run
Repetí el comando de certificado para cada dominio que sumes en el futuro. Al terminar, probá https://tutienda.com y buscá el candado en la barra del navegador. La simulación de renovación confirma que, de acá en adelante, el certificado se va a renovar sin que vos hagas nada.
Problemas frecuentes y cómo resolverlos
- Veo la página «Welcome to nginx» en lugar de mi web: falta el enlace en
sites-enabledo elserver_nametiene un error de tipeo. Revisá los dos y ejecutánginx -t. - Los dos dominios muestran el mismo sitio: Nginx usa el primer bloque cuando no encuentra coincidencia. Verificá que cada archivo tenga su propio
server_name. - Error 403 Forbidden: casi siempre son permisos. Revisá que
www-datapueda leer las carpetas y que exista un archivoindex.html. - Error 404: la ruta de
rootno coincide con la carpeta real. Compará letra por letra. - Certbot falla: casi siempre significa que los DNS todavía no se propagaron. Esperá y volvé a intentarlo.
Ante cualquier duda, el primer lugar donde mirar es el registro de errores del sitio: sudo tail -n 30 /var/log/nginx/tutienda.com.error.log. Ahí Nginx suele decirte exactamente qué le molesta.
Buenas prácticas para no perder el control
Cuando el VPS aloja más de un sitio, conviene sumar algunos hábitos desde el principio:
- Probá siempre con
nginx -tantes de recargar. - Guardá una copia de
/etc/nginxy de cada carpeta de/var/wwwantes de modificar algo importante. - Mantené el sistema actualizado con
sudo apt update && sudo apt upgrade. - Revisá los logs de cada sitio por separado, para saber cuál recibe más visitas o errores.
Para que cada web cargue rápido, pensá en lo que podés ajustar vos: imágenes livianas, compresión y caché del navegador. Estas dos líneas dentro del bloque server son un buen comienzo:
gzip on;
location ~* \.(jpg|jpeg|png|webp|css|js)$ { expires 30d; }
Revisá de vez en cuando el uso de memoria con htop y priorizá optimizar el sitio que más recursos consume.
Preguntas que suelen aparecer
¿Cuántas webs soporta mi VPS?
Depende de sus recursos y del tráfico de cada sitio. Lo prudente es sumar webs de a una y vigilar el uso de memoria y procesador después de cada alta.
¿Puedo alojar WordPress?
Claro. Cada sitio puede tener su propia instalación y su propia base de datos, siempre que tu servidor tenga PHP configurado.
¿Y si me equivoco en la configuración?
No pasa nada grave: nginx -t detecta el error antes de aplicarlo y, mientras no recargues, tus sitios siguen funcionando como antes.
¿Conviene un VPS para una sola web?
Puede convenir si necesitás control, pero también está bien empezar con un plan más simple y migrar cuando tu proyecto lo pida.
Tu plan de acción para hoy
- Reuní la IP del VPS y los dos dominios.
- Instalá Nginx y confirmá la página de bienvenida.
- Creá una carpeta y un
index.htmlde prueba por sitio. - Escribí y habilitá un virtual host por dominio.
- Ejecutá
nginx -ty recargá el servicio. - Apuntá los DNS y comprobá con
dig. - Activá SSL con Certbot y probá la renovación.
Si hacés un paso por vez y verificás el resultado antes de seguir, es muy difícil perderte.
Menos servidores, más orden
Dominar los virtual hosts te da libertad: podés sumar proyectos nuevos sin pedir permiso a nadie ni abrir otra cuenta. Lo importante es avanzar en orden y verificar cada paso antes de seguir con el siguiente.
Tomate una hora esta semana, seguí la guía con tus dos primeros dominios y guardá una copia de tu configuración. La próxima web que sumes te va a llevar apenas unos minutos.
