Qué es Nginx y por qué instalarlo en Ubuntu
Nginx es un servidor web de código abierto y alto rendimiento que también puede funcionar como proxy inverso, balanceador de carga y caché HTTP. Dicho de forma sencilla: sirve páginas web, recibe tráfico, lo redirige a aplicaciones internas cuando hace falta y puede ayudar a que un sitio responda más rápido.
En mi caso, cuando instalo Nginx en una máquina virtual (vps), lo que busco es una base ligera y estable para alojar sitios web o aplicaciones sin gastar demasiada memoria. Esa es una de las razones por las que Nginx encaja tan bien en servidores Ubuntu, VPS pequeños y entornos donde quieres empezar rápido pero con una configuración seria.
Ubuntu incluye Nginx en sus repositorios, así que la forma más directa de instalarlo es usando APT. La documentación de Ubuntu resume la instalación básica con sudo apt update y sudo apt install nginx, y después basta con abrir la IP del servidor en el navegador para comprobar la página de bienvenida.
Recuerda que tambien disponemos de una guia sobre cómo optimizar y potenciar nginx
Nginx como servidor web, proxy inverso, balanceador y caché HTTP
Una instalación básica de Nginx te sirve para publicar una web estática, pero también puede crecer contigo. Puedes usarlo como entrada para una aplicación Node.js, PHP-FPM, Python, Docker o cualquier servicio interno que escuche en otro puerto.
Por eso, instalar Nginx en Ubuntu no es solo “poner un servidor web”. Es preparar el primer componente de una infraestructura más completa: un sitio web, una API, un proxy inverso o una pila LEMP.
Por qué Nginx consume pocos recursos y maneja muchas conexiones
Nginx fue creado originalmente por Igor Sysoev para resolver el problema C10K: manejar 10.000 conexiones simultáneas. Su arquitectura asíncrona basada en eventos le permite trabajar muy bien bajo carga, especialmente frente a modelos más tradicionales basados en un proceso o hilo por conexión.
En la práctica, esto se traduce en algo muy útil: puedes tener un servidor ligero, capaz de gestionar muchas conexiones simultáneas con un consumo de memoria contenido. Para una máquina virtual, un VPS o un servidor Ubuntu recién creado, es una base excelente.
Requisitos previos antes de instalar Nginx en Ubuntu
Antes de instalar Nginx en Ubuntu, conviene revisar tres cosas: que tienes acceso al servidor, que tu usuario puede usar sudo y que no vas a bloquear el acceso SSH al tocar el firewall.
Esta guía está pensada para Ubuntu 26.04, 24.04 y 22.04. Ubuntu 26.04 LTS fue publicado oficialmente el 23 de abril de 2026, por lo que ya tiene sentido incluirlo en una guía actualizada junto con las versiones LTS anteriores.
Tener un servidor Ubuntu o máquina virtual lista
Puedes seguir estos pasos en:
- una máquina virtual de hostingtg.com;
- un VPS con Ubuntu Server;
- una instancia cloud;
- un servidor físico;
- una instalación local de Ubuntu para pruebas.
Lo importante es que tengas acceso a la terminal y conexión a internet para instalar paquetes desde los repositorios.
Acceso SSH y usuario con permisos sudo
Si estás trabajando en un servidor remoto, entra por SSH:
ssh usuario@IP_DEL_SERVIDOR
Después comprueba que puedes ejecutar comandos con privilegios:
sudo whoami
Si devuelve:
root
tu usuario tiene permisos sudo.
Comprobar si UFW está activo
Ubuntu suele trabajar muy bien con UFW como firewall sencillo. Antes de abrir puertos, mira su estado:
sudo ufw status
Si aparece inactive, el firewall no está filtrando conexiones. Si aparece active, tendrás que permitir tráfico HTTP o HTTPS para que Nginx sea accesible desde fuera.
Instalar Nginx en Ubuntu con APT
La forma recomendada para la mayoría de usuarios es instalar Nginx desde los repositorios de Ubuntu. No necesitas compilar nada, descargar archivos manualmente ni añadir repositorios externos para empezar.
En mi caso, esta es la opción que usaría por defecto en una máquina virtual de hostingtg.com cuando quiero levantar rápido un servidor web, un proxy inverso o la base de una pila LEMP. Ubuntu ya trae un paquete Nginx robusto en sus repositorios predeterminados, así que para muchos escenarios es suficiente.
Actualizar los repositorios de Ubuntu
Primero actualiza la lista de paquetes:
sudo apt update
Este comando no actualiza todos los programas del sistema. Lo que hace es refrescar la información de los repositorios para que Ubuntu sepa qué versiones de paquetes están disponibles.
Instalar el paquete nginx
Ahora instala Nginx:
sudo apt install nginx
Cuando el sistema pregunte si quieres continuar, confirma con Y o S, según el idioma de tu terminal.
Al terminar, Ubuntu debería instalar Nginx y crear automáticamente el servicio de systemd correspondiente.
Verificar la versión instalada
Para ver qué versión de Nginx se ha instalado:
nginx -v
La salida será parecida a:
nginx version: nginx/1.24.0
La versión exacta puede cambiar según tu versión de Ubuntu y los repositorios activos. No te preocupes si no coincide exactamente con otro tutorial: lo importante es que Nginx esté instalado y funcionando.
Comprobar que Nginx está funcionando
Después de instalar Nginx en Ubuntu, no cierres la terminal todavía. Lo correcto es comprobar tres cosas: que el servicio está activo, que responde desde el navegador y que también puedes probarlo desde la terminal.
Revisar el estado del servicio con systemctl
Ejecuta:
sudo systemctl status nginx
Si todo ha ido bien, verás algo parecido a:
Active: active (running)
Eso significa que Nginx está iniciado.
Para salir de esa pantalla, pulsa: q
Busca la IP de tu servidor: hostname -I
Luego abre en el navegador: http://IP_DEL_SERVIDOR
Si ves la página de bienvenida de Nginx, la instalación está funcionando.
En un VPS o una máquina virtual de hostingtg.com, este paso es clave porque confirma que Nginx no solo está instalado, sino que también responde desde fuera.
Probar Nginx desde terminal con curl
También puedes probarlo localmente: curl -I localhost
Una respuesta correcta debería incluir algo como:
HTTP/1.1 200 OK
Server: nginx
Si ves Server: nginx, buena señal: el servidor está respondiendo.
Configurar el firewall para permitir tráfico web
Si UFW está activo y no abres el puerto correcto, Nginx puede estar funcionando perfectamente pero no verse desde el navegador. Este es uno de los errores más comunes al instalar Nginx en Ubuntu.
Diferencias entre Nginx HTTP, Nginx HTTPS y Nginx Full
UFW suele crear perfiles de aplicación para Nginx. Puedes verlos con:
sudo ufw app list
Normalmente aparecerán perfiles como:
Nginx HTTP
Nginx HTTPS
Nginx Full
La diferencia es sencilla:
| Perfil | Qué abre | Cuándo usarlo |
|---|---|---|
| Nginx HTTP | Puerto 80 | Web sin HTTPS o primera prueba |
| Nginx HTTPS | Puerto 443 | Web con SSL/TLS |
| Nginx Full | Puertos 80 y 443 | Web con HTTP y HTTPS |
Abrir el puerto 80 con UFW
Para permitir tráfico HTTP:
sudo ufw allow 'Nginx HTTP'
Después revisa el estado:
sudo ufw status
Deberías ver una regla permitiendo Nginx HTTP.
Mantener acceso SSH activo
Antes de activar UFW en un servidor remoto, asegúrate de permitir SSH:
sudo ufw allow OpenSSH
Luego, si el firewall estaba inactivo y quieres activarlo:
sudo ufw enable
No te saltes este detalle. Bloquear SSH por error es una forma muy rápida de quedarte fuera de tu propio servidor.
Comandos básicos para administrar Nginx en Ubuntu
Una vez instalado, necesitas saber cómo controlar Nginx. Estos comandos te servirán cada vez que cambies una configuración, reinicies el servidor o quieras diagnosticar un fallo.
Iniciar, detener y reiniciar Nginx
Para iniciar Nginx:
sudo systemctl start nginx
Para detenerlo:
sudo systemctl stop nginx
Para reiniciarlo:
sudo systemctl restart nginx
El reinicio es útil cuando haces cambios importantes, pero no siempre es necesario.
Recargar configuración sin cortar conexiones
Si solo has cambiado archivos de configuración, suele ser mejor recargar:
sudo systemctl reload nginx
Esto aplica la configuración sin cortar conexiones activas de forma brusca. Es una práctica más limpia cuando Nginx ya está sirviendo tráfico real.
Activar Nginx al arrancar el sistema
Para que Nginx arranque automáticamente al iniciar Ubuntu:
sudo systemctl enable nginx
Para comprobar si está habilitado:
systemctl is-enabled nginx
Si devuelve
enabled
Nginx se iniciará automáticamente después de reiniciar el servidor.
Archivos y carpetas importantes de Nginx en Ubuntu
Una de las cosas que más confunde al principio es dónde está cada archivo. Nginx tiene una estructura bastante clara en Ubuntu, pero conviene entenderla antes de tocar configuración.
Archivo principal nginx.conf
El archivo principal está en:
/etc/nginx/nginx.conf
Aquí se definen opciones globales del servidor. En una instalación básica no hace falta tocarlo demasiado.
Mi recomendación es simple: si estás empezando, no edites nginx.conf sin necesidad. La mayoría de configuraciones de sitios se hacen mejor en los bloques de servidor dentro de sites-available.
Directorios sites-available y sites-enabled
Ubuntu organiza los sitios de Nginx así:
/etc/nginx/sites-available/
Aquí guardas las configuraciones disponibles
/etc/nginx/sites-enabled/
Aquí se enlazan las configuraciones activas.
La idea es práctica: creas un archivo de sitio en sites-available y lo activas con un enlace simbólico en sites-enabled.
Carpeta web por defecto /var/www/html
La web por defecto suele estar en:
/var/www/html
Ahí encontrarás el index.html inicial que muestra la página de bienvenida.
Para un proyecto real, es mejor crear una carpeta propia, por ejemplo:
/var/www/mi-sitio
Así mantienes separado el contenido de cada web.
Logs de acceso y errores
Los logs principales están en:
/var/log/nginx/access.log
y:
/var/log/nginx/error.log
Cuando algo falla, el archivo error.log suele ser uno de los mejores sitios para empezar a mirar.
Crear un sitio básico con Nginx en Ubuntu
Ahora vamos un paso más allá: no solo instalar Nginx, sino crear un sitio básico propio. Esto te ayuda a entender cómo se publicaría una web real.
Crear una carpeta para tu sitio
Crea una carpeta:
sudo mkdir -p /var/www/mi-sitio/html
Asigna permisos al usuario actual:
sudo chown -R $USER:$USER /var/www/mi-sitio/html
Ajusta permisos:
sudo chmod -R 755 /var/www/mi-sitio
Añadir un archivo index.html de prueba
Crea el archivo:
nano /var/www/mi-sitio/html/index.html
nano /var/www/mi-sitio/html/index.html
Pega este contenido:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Mi sitio con Nginx</title>
</head>
<body>
<h1>Nginx funciona en Ubuntu</h1>
<p>Este sitio está servido con Nginx.</p>
</body>
</html>
Guarda con CTRL + O, pulsa Enter y sal con CTRL + X.
Crear un bloque de servidor
Crea un nuevo archivo de configuración:
sudo nano /etc/nginx/sites-available/mi-sitio
Añade:
server {
listen 80;
listen [::]:80;
root /var/www/mi-sitio/html;
index index.html index.htm;
server_name ejemplo.com www.ejemplo.com;
location / {
try_files $uri $uri/ =404;
}
}
Si todavía no tienes dominio, puedes usar temporalmente la IP del servidor en server_name o dejarlo como ejemplo hasta configurar DNS.
Activar el sitio con un enlace simbólico
Activa la configuración:
sudo ln -s /etc/nginx/sites-available/mi-sitio /etc/nginx/sites-enabled/
Si el sitio por defecto interfiere, puedes desactivarlo:
sudo rm /etc/nginx/sites-enabled/default
Validar la configuración con nginx -t
Antes de recargar Nginx, prueba la configuración:
sudo nginx -t
Si todo está bien, verás algo como:
syntax is ok
test is successful
Ahora recarga Nginx:
sudo systemctl reload nginx
Este paso es importantísimo. Yo prefiero validar siempre con nginx -t antes de recargar, porque un error pequeño en una llave, un punto y coma o una ruta puede impedir que Nginx arranque correctamente.
Instalar Nginx desde APT o desde el repositorio oficial: qué opción elegir
Para la mayoría de usuarios, instalar Nginx con APT desde Ubuntu es suficiente. Es rápido, estable y fácil de mantener. Pero hay casos donde puede interesarte usar el repositorio oficial de Nginx.
La documentación oficial de Nginx indica que su repositorio permite instalar versiones Stable y Mainline de NGINX Open Source para sistemas de producción compatibles.
Cuándo basta con el paquete de Ubuntu
Usa el paquete de Ubuntu si:
- quieres instalar Nginx rápido;
- estás montando una web sencilla;
- estás preparando un proxy inverso estándar;
- priorizas estabilidad;
- no necesitas funciones de una versión más reciente;
- quieres actualizaciones integradas con el sistema.
Para un VPS, una máquina virtual o un servidor Ubuntu donde solo necesitas servir páginas, configurar HTTPS y crear hosts virtuales, APT suele ser la mejor opción.
Cuándo conviene usar la última versión de Nginx
Puede interesarte el repositorio oficial si:
- necesitas una versión más reciente;
- quieres usar una característica nueva;
- estás replicando una configuración concreta de producción;
- necesitas paquetes Stable o Mainline directamente desde Nginx;
- administras varios servidores y quieres homogeneizar versiones.
Nginx publica instrucciones para configurar su repositorio APT en Ubuntu, incluyendo el uso de una clave de firmado y el archivo de repositorio correspondiente.
Para este artículo, la instalación principal es con APT porque responde mejor a la intención de búsqueda “instalar nginx en ubuntu”: rápida, estándar y suficiente para la mayoría.
Errores comunes al instalar Nginx en Ubuntu y cómo solucionarlos
Aunque instalar Nginx en Ubuntu es sencillo, hay varios fallos típicos que se repiten una y otra vez. Aquí van los más habituales y cómo resolverlos.
Nginx no arranca después de instalarlo
Comprueba el estado:
sudo systemctl status nginx
Luego revisa logs:
sudo journalctl -u nginx
También puedes probar la configuración:
sudo nginx -t
Si hay un error de sintaxis, Nginx te dirá el archivo y la línea aproximada.
Comprueba lo siguiente:
sudo systemctl status nginx
Luego revisa el firewall:
sudo ufw status
Si UFW está activo, permite HTTP:
sudo ufw allow 'Nginx HTTP'
También confirma la IP: hostname -I
Y prueba localmente: curl -I localhost
Si localmente responde pero desde el navegador no, probablemente el problema está en firewall, reglas cloud, DNS o IP incorrecta.
Error “address already in use”
Este error suele aparecer cuando otro servicio ya está usando el puerto 80 o 443.
Comprueba qué proceso usa el puerto 80:
sudo ss -tulpn | grep ':80'
Si Apache u otro servidor está ocupando el puerto, tendrás que detenerlo o cambiar puertos.
Por ejemplo, para detener Apache:
sudo systemctl stop apache2
Y después reiniciar Nginx:
sudo systemctl restart nginx
Error de sintaxis en la configuración
Ejecuta:
sudo nginx -t
Si aparece algo como:
unexpected "}"
o:
directive is not terminated by ";"
revisa el archivo indicado. En Nginx, muchas directivas terminan con punto y coma:
root /var/www/mi-sitio/html;
Un solo ; olvidado puede romper la configuración.
Primeros pasos después de instalar Nginx
Una vez instalado Nginx y comprobado que funciona, el siguiente paso depende de lo que quieras montar.
En mi caso, suelo verlo como una base: primero dejo Nginx respondiendo, luego configuro firewall, después creo el sitio o bloque de servidor y, cuando toca publicar algo real, añado dominio y HTTPS.
Configurar un dominio
Para usar un dominio, crea registros DNS apuntando a la IP del servidor:
- registro
Aparaejemplo.com; - registro
Aparawww.ejemplo.com, si quieres usar www.
Luego en el bloque de servidor usa:
server_name ejemplo.com www.ejemplo.com;
Después valida y recarga:
sudo nginx -t
sudo systemctl reload nginx
Añadir HTTPS con Let’s Encrypt y Certbot
Cuando el dominio ya apunta al servidor, lo normal es añadir HTTPS con Let’s Encrypt y Certbot.
La instalación exacta puede variar, pero el flujo habitual es:
sudo apt install certbot python3-certbot-nginx
Luego:
sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com
Certbot puede modificar la configuración de Nginx para añadir SSL/TLS automáticamente.
Usar Nginx como proxy inverso o base de una pila LEMP
Una vez instalado, Nginx puede servir como:
- servidor de sitios estáticos;
- proxy inverso hacia una aplicación;
- frontal para una API;
- balanceador de carga;
- parte de una pila LEMP con Linux, Nginx, MySQL/MariaDB y PHP.
Por eso merece la pena entender bien la instalación básica. Es el primer paso antes de montar aplicaciones más completas.
Tabla rápida de comandos útiles
| Acción | Comando |
|---|---|
| Actualizar repositorios | sudo apt update |
| Instalar Nginx | sudo apt install nginx |
| Ver versión | nginx -v |
| Ver estado | sudo systemctl status nginx |
| Iniciar Nginx | sudo systemctl start nginx |
| Detener Nginx | sudo systemctl stop nginx |
| Reiniciar Nginx | sudo systemctl restart nginx |
| Recargar configuración | sudo systemctl reload nginx |
| Validar configuración | sudo nginx -t |
| Ver logs del servicio | sudo journalctl -u nginx |
| Permitir HTTP en UFW | sudo ufw allow 'Nginx HTTP' |
| Permitir HTTP y HTTPS | sudo ufw allow 'Nginx Full' |
| Ver IP del servidor | hostname -I |
| Probar respuesta local | curl -I localhost |
Nginx en Ubuntu
Instalar Nginx en Ubuntu es uno de los primeros pasos más útiles si quieres montar un servidor web, publicar una página, crear un proxy inverso o preparar una pila LEMP. La instalación con APT es rápida, estable y suficiente para la mayoría de casos:
sudo apt update
sudo apt install nginx
Después, lo importante es no quedarse solo en “ya está instalado”. Conviene comprobar el servicio, abrir el firewall, probar la IP en el navegador, entender dónde están los archivos de configuración y validar cualquier cambio con:
sudo nginx -t
Para una máquina virtual, un VPS o un servidor Ubuntu moderno, Nginx es una base ligera y muy versátil. Puedes empezar con una web estática sencilla y, más adelante, usarlo como proxy inverso, balanceador, caché HTTP o puerta de entrada para aplicaciones más complejas.
Dudas de la comunidad
¿Cómo instalar Nginx en Ubuntu?
Actualiza los repositorios e instala el paquete:
sudo apt update
sudo apt install nginx
Después comprueba el servicio:
sudo systemctl status nginx
¿Qué comando instala Nginx en Ubuntu?
El comando principal es:
sudo apt install nginx
Aunque es recomendable ejecutarlo después de:
sudo apt update
¿Cómo saber si Nginx está funcionando?
Puedes comprobarlo con:
sudo systemctl status nginx
También puedes probar desde terminal:
curl -I localhost
O abrir la IP del servidor en el navegador.
¿Dónde está la configuración de Nginx en Ubuntu?
El archivo principal está en:
/etc/nginx/nginx.conf
Los sitios suelen configurarse en:
/etc/nginx/sites-available/
Y se activan desde:
/etc/nginx/sites-enabled/
¿Cómo reiniciar Nginx en Ubuntu?
Usa:
sudo systemctl restart nginx
Si solo cambiaste configuración, suele ser mejor:
sudo systemctl reload nginx
¿Es mejor instalar Nginx desde APT o desde el repositorio oficial?
Para la mayoría de usuarios, APT es suficiente. Si necesitas una versión más reciente o quieres usar los paquetes Stable/Mainline directamente desde Nginx, puedes configurar el repositorio oficial.
¿Qué hago si Nginx no arranca?
Primero valida la configuración:
sudo nginx -t
Luego revisa el estado y los logs:
sudo systemctl status nginx
sudo journalctl -u nginx
¿Qué puertos necesita Nginx?
Para HTTP usa el puerto 80. Para HTTPS usa el puerto 443. Con UFW puedes abrirlos así:
sudo ufw allow 'Nginx HTTP'
sudo ufw allow 'Nginx Full'
Opinión Personal
instalar Nginx en Ubuntu es una de las mejores decisiones cuando quieres montar un servidor web ligero, estable y preparado para crecer. No lo veo solo como “instalar un paquete más”, sino como poner la primera piedra de una infraestructura seria, incluso si al principio solo vas a publicar una página sencilla.
Lo que más me gusta de Nginx es que combina muy bien dos cosas: simplicidad inicial y potencia a largo plazo. Puedes instalarlo con un par de comandos usando APT, comprobar que funciona en pocos minutos y tener una página respondiendo desde tu servidor. Pero, al mismo tiempo, ese mismo Nginx puede acabar funcionando como proxy inverso, balanceador de carga, caché HTTP o parte de una pila LEMP más completa.
En mi caso, cuando pienso en una máquina virtual o en cualquier VPS con Ubuntu, Nginx me parece una opción muy lógica porque consume pocos recursos y está pensado para manejar muchas conexiones simultáneas. Eso se nota especialmente cuando quieres tener un servidor eficiente sin complicarte demasiado desde el primer día.
También valoro mucho que Ubuntu ya incluya Nginx en sus repositorios oficiales. Para la mayoría de proyectos, no hace falta añadir repositorios externos ni buscar instalaciones raras: actualizas APT, instalas el paquete, revisas el servicio, abres el firewall y ya tienes una base funcional. Esa sencillez es una ventaja enorme, sobre todo para quienes están empezando en administración de servidores.
Ahora bien, instalarlo es solo el principio. La diferencia entre una instalación básica y una configuración bien hecha está en los detalles: comprobar el estado con systemctl, validar cambios con nginx -t, entender sites-available y sites-enabled, revisar los logs cuando algo falla y no olvidarse del firewall. Son pasos pequeños, pero marcan la diferencia entre “me funciona de casualidad” y “sé exactamente qué está pasando en mi servidor”.
Mi opinión es clara: si estás usando Ubuntu y quieres publicar una web, montar un proxy inverso o preparar un entorno para aplicaciones, Nginx debería estar entre tus primeras opciones. Es rápido, estable, flexible y tiene una curva de aprendizaje bastante razonable. No necesitas dominarlo todo desde el primer día, pero aprender bien su instalación y configuración básica te da una base muy sólida para cualquier proyecto web.
Y tú, ¿ya has instalado Nginx en Ubuntu? ¿Lo usas como servidor web, proxy inverso o para una pila LEMP? Déjame tu experiencia en los comentarios: qué versión de Ubuntu usaste, si tuviste algún error y qué configuración te funcionó mejor.




