Cómo instalar nginx correctamente en Ubuntu Server
Instalar nginx es fácil. Instalarlo correctamente para una web profesional ya exige algo más de criterio. No basta con ejecutar un comando y comprobar que aparece una página de bienvenida. Si el servidor va a alojar una web corporativa, un WordPress, una plataforma LMS o un proyecto serio de microempresa, conviene entender qué se está instalando, cómo se organiza la configuración y qué errores hay que evitar desde el principio.
nginx es uno de los servidores web más utilizados en proyectos modernos por su rendimiento, eficiencia y capacidad para gestionar muchas conexiones con bajo consumo de recursos. Es especialmente interesante en VPS, servidores ligeros y arquitecturas donde se quiere mantener una infraestructura sobria, rápida y mantenible.
Este artículo explica cómo plantear una instalación correcta de nginx en Ubuntu Server, no como receta ciega, sino como base técnica para desplegar después HTTPS, WordPress, reglas de seguridad, copias de seguridad y monitorización.
Índice
- Antes de instalar nginx
- Qué es nginx y qué papel cumple
- Cuándo tiene sentido usar nginx
- Instalación básica de nginx en Ubuntu Server
- Estructura de configuración de nginx
- Qué son los server blocks
- Dónde colocar los archivos de la web
- Permisos y usuarios: un punto crítico
- Comprobaciones después de instalar nginx
- nginx y HTTPS con Let’s Encrypt
- nginx como base para WordPress
- Errores frecuentes al instalar nginx
- Conclusión
- Preguntas frecuentes
Antes de instalar nginx
Antes de instalar nginx, conviene confirmar que el servidor está preparado. nginx no debería ser el primer paso improvisado en una máquina recién creada si todavía no se han revisado aspectos básicos como usuarios, red, actualizaciones, firewall o finalidad del servidor.
Como mínimo, deberías tener claro:
- Qué versión de Ubuntu Server estás usando.
- Si el servidor será de pruebas o de producción.
- Qué dominio o subdominio apuntará a la máquina.
- Si se alojará una web estática, WordPress u otra aplicación.
- Qué usuario administrará el sistema.
- Cómo se harán las copias de seguridad.
- Si después se configurará HTTPS.
Si todavía estás en la fase de preparación de la máquina, conviene revisar antes cómo instalar Ubuntu Server paso a paso. Y si aún no tienes claro si deberías estar usando un VPS, dedicado o hosting gestionado, tiene sentido leer VPS o servidor dedicado: qué elegir.
Qué es nginx y qué papel cumple
nginx es un servidor web. Su función principal es recibir peticiones HTTP o HTTPS desde navegadores y responder con los recursos correspondientes: páginas HTML, imágenes, archivos CSS, scripts, documentos o respuestas generadas por una aplicación.
En una arquitectura web real, nginx puede cumplir varios papeles:
- Servir archivos estáticos.
- Actuar como servidor web principal.
- Gestionar dominios y subdominios mediante server blocks.
- Terminar conexiones HTTPS.
- Enviar peticiones PHP a PHP-FPM.
- Actuar como proxy inverso delante de otras aplicaciones.
- Aplicar reglas básicas de seguridad y control de acceso.
Por eso nginx no debe verse como “un programa más” instalado en el servidor. Es una pieza de entrada. Muchas peticiones externas pasan primero por nginx antes de llegar a WordPress, una aplicación interna o un servicio dinámico.
Para entender mejor su papel dentro de la infraestructura completa, es útil partir de la base explicada en qué es realmente un servidor web.
Cuándo tiene sentido usar nginx
nginx tiene mucho sentido en proyectos donde se busca eficiencia, rendimiento y control. Es frecuente encontrarlo en VPS, servidores dedicados, instalaciones WordPress optimizadas, APIs, aplicaciones modernas y arquitecturas con proxy inverso.
Para una microempresa o proyecto profesional, nginx puede ser una buena elección cuando:
- Se quiere alojar una web corporativa rápida.
- Se trabaja con WordPress en un VPS propio.
- Se busca reducir consumo de recursos.
- Se quieren gestionar varios dominios o subdominios.
- Se necesita configurar HTTPS de forma limpia.
- Se desea proteger mejor ciertas rutas o archivos.
- Se quiere aprender infraestructura web con una herramienta muy usada en producción.
Apache también sigue siendo válido y muy utilizado. La elección no debería convertirse en una guerra técnica. Lo importante es entender el contexto, el mantenimiento disponible y las necesidades reales. Para comparar ambos enfoques con más calma, puedes revisar Apache vs nginx para pequeñas empresas.
Instalación básica de nginx en Ubuntu Server
En Ubuntu Server, nginx suele instalarse desde los repositorios oficiales del sistema. En una instalación profesional, lo recomendable es actualizar primero el índice de paquetes y después instalar nginx desde fuentes estándar, salvo que exista una razón técnica para usar repositorios externos.
El flujo básico sería:
- Actualizar la lista de paquetes.
- Instalar nginx.
- Comprobar que el servicio se ha iniciado.
- Verificar que responde desde el navegador o con una petición HTTP.
- Revisar el estado del firewall si está activo.
- Comprobar la configuración antes de modificar archivos.
En una guía operativa, los comandos habituales serían de este tipo:
sudo apt update
sudo apt install nginx
sudo systemctl status nginx
Si nginx está funcionando, el servidor debería escuchar en el puerto 80 para tráfico HTTP. Al acceder a la IP o dominio configurado, puede aparecer la página por defecto de nginx.
Esa página no es el objetivo final. Solo confirma que el servicio responde. A partir de ahí empieza lo importante: configurar correctamente el sitio real, sus rutas, permisos, dominio, HTTPS y reglas específicas.
Estructura de configuración de nginx
Uno de los puntos más importantes al aprender nginx es entender dónde están sus archivos de configuración. En Ubuntu, la configuración suele organizarse en varios directorios y archivos.
Las rutas habituales son:
/etc/nginx/nginx.conf: configuración principal./etc/nginx/sites-available/: configuraciones disponibles para sitios./etc/nginx/sites-enabled/: sitios activados mediante enlaces simbólicos./var/www/: ubicación habitual para archivos web./var/log/nginx/access.log: registro de accesos./var/log/nginx/error.log: registro de errores.
Esta separación permite tener configuraciones preparadas en sites-available y activar solo las necesarias en sites-enabled. Es una forma ordenada de gestionar varios sitios en un mismo servidor.
Un error habitual es tocar directamente archivos sin entender esta estructura. Eso genera configuraciones difíciles de mantener y problemas cuando hay que añadir dominios, revisar errores o migrar una web.
Qué son los server blocks
En nginx, un server block define cómo debe responder el servidor ante un dominio, subdominio o conjunto de peticiones. Es el equivalente práctico a configurar un sitio web dentro de nginx.
Un server block puede indicar:
- Qué dominio atiende.
- Qué carpeta contiene los archivos.
- Qué archivo se debe cargar por defecto.
- Qué logs se usarán.
- Qué reglas especiales se aplican.
- Cómo se gestionan errores.
- Cómo se pasa PHP a PHP-FPM, si procede.
Una configuración muy básica para una web estática podría contener una directiva server_name, una raíz root y una lista de archivos índice.
server {
listen 80;
server_name ejemplo.com www.ejemplo.com;
root /var/www/ejemplo.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Este ejemplo es solo una base conceptual. Para WordPress, HTTPS, redirecciones, caché, protección de archivos o PHP, la configuración se amplía. Por eso no conviene copiar bloques de Internet sin entender qué hace cada directiva.
Dónde colocar los archivos de la web
En Ubuntu, una ubicación habitual para alojar sitios web es /var/www/. Dentro de esa carpeta puede crearse un directorio por dominio o proyecto, por ejemplo /var/www/ejemplo.com.
La organización por dominios facilita mantener varios proyectos separados:
/var/www/proyecto1.com/var/www/proyecto2.com/var/www/sandbox.proyecto.com
Esta separación es especialmente útil cuando se trabaja con producción y sandbox, o cuando se preparan migraciones sin tocar directamente el sitio principal.
En una microempresa que publica contenidos SEO, vende cursos o mantiene un WordPress corporativo, separar bien los entornos ayuda a reducir errores. Una mala organización de carpetas puede provocar confusiones peligrosas: borrar archivos del sitio equivocado, mezclar pruebas con producción o aplicar permisos incorrectos.
Este punto se relaciona con procesos más amplios como cómo migrar una web sin romper nada.
Permisos y usuarios: un punto crítico
Uno de los errores más frecuentes en servidores web consiste en resolver problemas de permisos dando permisos excesivos. Es tentador aplicar permisos amplios para que “todo funcione”, pero eso puede abrir riesgos de seguridad importantes.
nginx normalmente ejecuta sus procesos con un usuario específico del sistema, como www-data en muchas instalaciones Ubuntu. Los archivos de la web deben tener permisos que permitan servir contenido sin dejar el servidor expuesto.
En una instalación profesional hay que pensar en tres perfiles:
- El usuario administrador del servidor.
- El usuario con el que nginx sirve archivos.
- El usuario o proceso que necesita escribir en ciertas carpetas, por ejemplo WordPress al subir medios.
El equilibrio correcto depende del tipo de aplicación. Una web estática no necesita los mismos permisos que WordPress, donde puede haber subidas de archivos, actualizaciones, cachés o plugins.
Por eso conviene trabajar primero la base de usuarios y permisos. Si este punto no está claro, revisa cómo crear usuarios seguros en Linux antes de exponer una web importante.
Comprobaciones después de instalar nginx
Después de instalar o modificar nginx, conviene hacer comprobaciones básicas. No se debería reiniciar o recargar el servicio sin validar antes la configuración.
Una comprobación habitual es:
sudo nginx -t
Este comando verifica si la configuración de nginx tiene errores de sintaxis. Si la prueba es correcta, se puede recargar el servicio para aplicar cambios sin detenerlo completamente.
sudo systemctl reload nginx
También conviene revisar:
- Estado del servicio.
- Puertos abiertos.
- Respuesta desde navegador.
- Logs de acceso.
- Logs de error.
- Resolución DNS del dominio.
- Permisos de la carpeta web.
Una buena práctica es no hacer cambios a ciegas. Si algo falla, los logs suelen dar pistas. Aprender a mirar logs evita perder horas tocando configuraciones al azar.
Más adelante, cuando el servidor esté en producción, será importante saber cómo reiniciar servicios Linux correctamente y cómo detectar consumo excesivo de CPU si la web empieza a comportarse de forma extraña.
nginx y HTTPS con Let’s Encrypt
Una instalación nginx para producción no debería quedarse solo en HTTP. Hoy lo normal es configurar HTTPS para cifrar la comunicación entre navegador y servidor.
HTTPS protege formularios, accesos, cookies, paneles de administración y cualquier intercambio de información sensible. Además, evita advertencias del navegador y transmite más confianza al usuario.
En muchos servidores, los certificados gratuitos de Let’s Encrypt permiten activar HTTPS sin coste de licencia. Lo importante es configurarlo bien, renovar automáticamente los certificados y comprobar que las redirecciones HTTP a HTTPS funcionan correctamente.
nginx suele integrarse muy bien con certificados de Let’s Encrypt mediante herramientas como Certbot. Pero no conviene mezclar pasos sin orden: primero el dominio debe apuntar correctamente al servidor, nginx debe responder por HTTP y después se configura el certificado.
Este tema merece una guía propia, por eso el siguiente paso natural es cómo configurar HTTPS gratis con Let’s Encrypt.
nginx como base para WordPress
nginx puede servir como base para alojar WordPress, pero WordPress no funciona solo con nginx. También necesita PHP y una base de datos como MariaDB o MySQL.
En una arquitectura habitual, nginx recibe la petición, sirve directamente archivos estáticos cuando puede y envía las peticiones PHP a PHP-FPM. WordPress ejecuta su lógica, consulta la base de datos y genera la página final.
Para WordPress, nginx debe configurarse con cuidado en aspectos como:
- Directiva
rootcorrecta. - Gestión de URLs amigables.
- Comunicación con PHP-FPM.
- Protección de archivos sensibles.
- Límites de subida.
- Reglas para caché o archivos estáticos.
- Redirecciones HTTP a HTTPS.
Una configuración pobre puede provocar errores 404, problemas al subir imágenes, fallos en enlaces permanentes, lentitud o exposición de archivos que no deberían ser públicos.
Por eso, si el objetivo es WordPress, este artículo debe verse como base previa. Después conviene continuar con cómo instalar WordPress manualmente y cómo proteger WordPress desde nginx.
Errores frecuentes al instalar nginx
El primer error frecuente es pensar que nginx ya está bien configurado porque muestra la página de bienvenida. Esa página solo indica que el servicio responde, no que el sitio esté preparado para producción.
Otro error habitual es copiar configuraciones de Internet sin entender el contexto. Una configuración válida para una web estática puede no servir para WordPress. Una configuración pensada para otra versión de PHP puede fallar. Una regla de seguridad mal puesta puede bloquear recursos legítimos.
Errores típicos:
- No comprobar la configuración con
nginx -t. - Editar directamente archivos sin copia previa.
- Confundir
sites-availableysites-enabled. - Usar una raíz web incorrecta.
- Aplicar permisos excesivos.
- No revisar logs de error.
- Configurar HTTPS antes de que el dominio apunte bien.
- No separar producción y pruebas.
- No documentar cambios.
También es frecuente tocar nginx para resolver problemas que en realidad están en DNS, PHP, base de datos, permisos, caché o WordPress. Por eso conviene diagnosticar antes de cambiar.
Conclusión
Instalar nginx correctamente es un paso importante para construir una infraestructura web seria. No se trata solo de instalar un paquete, sino de organizar bien la configuración, entender los server blocks, colocar correctamente los archivos, revisar permisos, validar cambios y preparar el camino para HTTPS y aplicaciones como WordPress.
Para una microempresa, nginx puede ser una herramienta muy potente: eficiente, ligera y adecuada para VPS o servidores con recursos ajustados. Pero su valor depende de que se use con método. Una mala configuración puede generar errores difíciles de detectar, problemas de seguridad o caídas evitables.
nginx no debe instalarse como un trámite, sino como una pieza central de la arquitectura web.
Si el proyecto depende de la web para posicionamiento SEO, captación comercial, formación online o venta de servicios, merece la pena configurar nginx con calma, documentar los cambios y enlazarlo con una estrategia completa de seguridad, backups y monitorización.
Preguntas frecuentes
¿nginx es mejor que Apache?
No siempre. nginx suele destacar por eficiencia, rendimiento y bajo consumo de recursos, especialmente en VPS y arquitecturas modernas. Apache sigue siendo muy válido y flexible. La mejor elección depende del proyecto, del conocimiento técnico disponible y de la configuración que se quiera mantener.
¿nginx sirve para alojar WordPress?
Sí. nginx puede alojar WordPress, pero necesita trabajar junto con PHP-FPM y una base de datos como MariaDB o MySQL. Además, requiere configurar bien URLs amigables, permisos, archivos estáticos, HTTPS y protección de archivos sensibles.
¿Qué significa que nginx muestre la página de bienvenida?
Significa que nginx está instalado y responde a peticiones HTTP. No significa que la web real esté configurada correctamente. Después hay que crear el server block del dominio, definir la raíz web, revisar permisos y configurar HTTPS si es un sitio de producción.
¿Dónde se configuran los sitios en nginx?
En Ubuntu, lo habitual es preparar configuraciones en /etc/nginx/sites-available/ y activarlas mediante enlaces simbólicos en /etc/nginx/sites-enabled/. Esta organización ayuda a gestionar varios dominios o proyectos de forma ordenada.
¿Debo reiniciar nginx cada vez que cambio la configuración?
Primero conviene comprobar la configuración con sudo nginx -t. Si no hay errores, normalmente basta con recargar nginx usando sudo systemctl reload nginx. Reiniciar completamente el servicio no siempre es necesario y puede interrumpir conexiones.
¿Puedo instalar nginx en Ubuntu Desktop?
Sí. Ubuntu Desktop y Ubuntu Server comparten la misma base, por lo que nginx puede instalarse también en Desktop. Sin embargo, para un VPS o servidor de producción suele preferirse Ubuntu Server por menor consumo, menor complejidad y enfoque orientado a servicios.
¿Es obligatorio configurar HTTPS después de instalar nginx?
Para pruebas locales no siempre es obligatorio, pero para una web pública profesional sí debería considerarse imprescindible. HTTPS protege la comunicación, evita avisos del navegador y mejora la confianza del usuario. Let’s Encrypt permite obtener certificados gratuitos en muchos escenarios.
