{"id":9284,"date":"2026-05-25T15:13:28","date_gmt":"2026-05-25T13:13:28","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=9284"},"modified":"2026-05-25T15:13:30","modified_gmt":"2026-05-25T13:13:30","slug":"instalar-nginx-en-ubuntu","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/instalar-nginx-en-ubuntu\/","title":{"rendered":"Instalar Nginx en Ubuntu: gu\u00eda paso a paso"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Qu\u00e9 es Nginx y por qu\u00e9 instalarlo en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx es un servidor web de c\u00f3digo abierto y alto rendimiento que tambi\u00e9n puede funcionar como <strong>proxy inverso<\/strong>, <strong>balanceador de carga<\/strong> y <strong>cach\u00e9 HTTP<\/strong>. Dicho de forma sencilla: sirve p\u00e1ginas web, recibe tr\u00e1fico, lo redirige a aplicaciones internas cuando hace falta y puede ayudar a que un sitio responda m\u00e1s r\u00e1pido.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, cuando instalo Nginx en una m\u00e1quina 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 <a href=\"https:\/\/www.hostingtg.com\/servidores-vps\/\">servidores Ubuntu<\/a>, VPS peque\u00f1os y entornos donde quieres empezar r\u00e1pido pero con una configuraci\u00f3n seria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu incluye Nginx en sus repositorios, as\u00ed que la forma m\u00e1s directa de instalarlo es usando APT. La <a href=\"https:\/\/www.hostingtg.com\/blog\/ubuntu-core-26\/\">documentaci\u00f3n de Ubuntu<\/a> resume la instalaci\u00f3n b\u00e1sica con <code>sudo apt update<\/code> y <code>sudo apt install nginx<\/code>, y despu\u00e9s basta con abrir la IP del servidor en el navegador para comprobar la p\u00e1gina de bienvenida.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Recuerda que tambien disponemos de una guia sobre c\u00f3mo <a href=\"https:\/\/www.hostingtg.com\/blog\/optimizar-y-potenciar-nginx\/\">optimizar y potenciar nginx<\/a><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Nginx como servidor web, proxy inverso, balanceador y cach\u00e9 HTTP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una instalaci\u00f3n b\u00e1sica de Nginx te sirve para publicar una web est\u00e1tica, pero tambi\u00e9n puede crecer contigo. Puedes usarlo como entrada para una aplicaci\u00f3n Node.js, PHP-FPM, Python, Docker o cualquier servicio interno que escuche en otro puerto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, instalar Nginx en Ubuntu no es solo \u201cponer un servidor web\u201d. Es preparar el primer componente de una infraestructura m\u00e1s completa: un sitio web, una API, un proxy inverso o una pila LEMP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Por qu\u00e9 Nginx consume pocos recursos y maneja muchas conexiones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx fue <a href=\"https:\/\/nginx.org\/\" target=\"_blank\" rel=\"noopener\">creado originalmente por Igor Sysoev<\/a> para resolver el problema C10K: manejar 10.000 conexiones simult\u00e1neas. Su arquitectura as\u00edncrona basada en eventos le permite trabajar muy bien bajo carga, especialmente frente a modelos m\u00e1s tradicionales basados en un proceso o hilo por conexi\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la pr\u00e1ctica, esto se traduce en algo muy \u00fatil: puedes tener un servidor ligero, capaz de gestionar muchas conexiones simult\u00e1neas con un consumo de memoria contenido. Para una m\u00e1quina virtual, un VPS o un servidor Ubuntu reci\u00e9n creado, es una base excelente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Requisitos previos antes de instalar Nginx en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de instalar Nginx en Ubuntu, conviene revisar tres cosas: que tienes acceso al servidor, que tu usuario puede usar <code>sudo<\/code> y que no vas a bloquear el <a href=\"https:\/\/www.hostingtg.com\/blog\/ssh-que-es\/\">acceso SSH<\/a> al tocar el firewall.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta gu\u00eda est\u00e1 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\u00eda actualizada junto con las versiones LTS anteriores.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tener un servidor Ubuntu o m\u00e1quina virtual lista<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes seguir estos pasos en:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>una m\u00e1quina virtual de hostingtg.com;<\/li>\n\n\n\n<li>un VPS con Ubuntu Server;<\/li>\n\n\n\n<li>una instancia cloud;<\/li>\n\n\n\n<li>un servidor f\u00edsico;<\/li>\n\n\n\n<li>una instalaci\u00f3n local de Ubuntu para pruebas.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Lo importante es que tengas acceso a la terminal y conexi\u00f3n a internet para instalar paquetes desde los repositorios.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Acceso SSH y usuario con permisos sudo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si est\u00e1s trabajando en un servidor remoto, entra por SSH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ssh usuario@IP_DEL_SERVIDOR<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s comprueba que puedes ejecutar comandos con privilegios:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo whoami<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si devuelve:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">tu usuario tiene permisos <code>sudo<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comprobar si UFW est\u00e1 activo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu suele trabajar muy bien con UFW como firewall sencillo. Antes de abrir puertos, mira su estado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si aparece <code>inactive<\/code>, el firewall no est\u00e1 filtrando conexiones. Si aparece <code>active<\/code>, tendr\u00e1s que permitir tr\u00e1fico HTTP o HTTPS para que Nginx sea accesible desde fuera.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar Nginx en Ubuntu con APT<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La forma recomendada para la mayor\u00eda de usuarios es instalar Nginx desde los repositorios de Ubuntu. No necesitas compilar nada, descargar archivos manualmente ni a\u00f1adir repositorios externos para empezar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, esta es la opci\u00f3n que usar\u00eda por defecto en una m\u00e1quina virtual de hostingtg.com cuando quiero levantar r\u00e1pido 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\u00ed que para muchos escenarios es suficiente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Actualizar los repositorios de Ubuntu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Primero actualiza la lista de paquetes:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este comando no actualiza todos los programas del sistema. Lo que hace es refrescar la informaci\u00f3n de los repositorios para que Ubuntu sepa qu\u00e9 versiones de paquetes est\u00e1n disponibles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Instalar el paquete nginx<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora instala Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el sistema pregunte si quieres continuar, confirma con <code>Y<\/code> o <code>S<\/code>, seg\u00fan el idioma de tu terminal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al terminar, Ubuntu deber\u00eda instalar Nginx y crear autom\u00e1ticamente el servicio de systemd correspondiente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Verificar la versi\u00f3n instalada<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para ver qu\u00e9 versi\u00f3n de Nginx se ha instalado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nginx -v<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La salida ser\u00e1 parecida a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nginx version: nginx\/1.24.0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La versi\u00f3n exacta puede cambiar seg\u00fan tu versi\u00f3n de Ubuntu y los repositorios activos. No te preocupes si no coincide exactamente con otro tutorial: lo importante es que Nginx est\u00e9 instalado y funcionando.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Comprobar que Nginx est\u00e1 funcionando<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de instalar Nginx en Ubuntu, no cierres la terminal todav\u00eda. Lo correcto es comprobar tres cosas: que el servicio est\u00e1 activo, que responde desde el navegador y que tambi\u00e9n puedes probarlo desde la terminal.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Revisar el estado del servicio con systemctl<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si todo ha ido bien, ver\u00e1s algo parecido a:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Active: active (running)<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Eso significa que Nginx est\u00e1 iniciado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para salir de esa pantalla, pulsa: q<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Probar Nginx desde el navegador<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Busca la IP de tu servidor: hostname -I<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Luego abre en el navegador: http:\/\/IP_DEL_SERVIDOR<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si ves la p\u00e1gina de bienvenida de Nginx, la instalaci\u00f3n est\u00e1 funcionando.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un VPS o una m\u00e1quina virtual de hostingtg.com, este paso es clave porque confirma que Nginx no solo est\u00e1 instalado, sino que tambi\u00e9n responde desde fuera.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Probar Nginx desde terminal con curl<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes probarlo localmente: curl -I localhost<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una respuesta correcta deber\u00eda incluir algo como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>HTTP\/1.1 200 OK\nServer: nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si ves <code>Server: nginx<\/code>, buena se\u00f1al: el servidor est\u00e1 respondiendo.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Configurar el firewall para permitir tr\u00e1fico web<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si UFW est\u00e1 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\u00e1s comunes al instalar Nginx en Ubuntu.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diferencias entre Nginx HTTP, Nginx HTTPS y Nginx Full<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">UFW suele crear perfiles de aplicaci\u00f3n para Nginx. Puedes verlos con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw app list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Normalmente aparecer\u00e1n perfiles como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Nginx HTTP\nNginx HTTPS\nNginx Full<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La diferencia es sencilla:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Perfil<\/th><th>Qu\u00e9 abre<\/th><th>Cu\u00e1ndo usarlo<\/th><\/tr><\/thead><tbody><tr><td>Nginx HTTP<\/td><td>Puerto 80<\/td><td>Web sin HTTPS o primera prueba<\/td><\/tr><tr><td>Nginx HTTPS<\/td><td>Puerto 443<\/td><td>Web con SSL\/TLS<\/td><\/tr><tr><td>Nginx Full<\/td><td>Puertos 80 y 443<\/td><td>Web con HTTP y HTTPS<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Abrir el puerto 80 con UFW<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir tr\u00e1fico HTTP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'Nginx HTTP'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s revisa el estado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deber\u00edas ver una regla permitiendo <code>Nginx HTTP<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mantener acceso SSH activo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de activar UFW en un servidor remoto, aseg\u00farate de permitir SSH:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow OpenSSH<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luego, si el firewall estaba inactivo y quieres activarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw enable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">No te saltes este detalle. Bloquear SSH por error es una forma muy r\u00e1pida de quedarte fuera de tu propio servidor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Comandos b\u00e1sicos para administrar Nginx en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez instalado, necesitas saber c\u00f3mo controlar Nginx. Estos comandos te servir\u00e1n cada vez que cambies una configuraci\u00f3n, reinicies el servidor o quieras diagnosticar un fallo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Iniciar, detener y reiniciar Nginx<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para iniciar Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl start nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para detenerlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para reiniciarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El reinicio es \u00fatil cuando haces cambios importantes, pero no siempre es necesario.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Recargar configuraci\u00f3n sin cortar conexiones<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si solo has cambiado archivos de configuraci\u00f3n, suele ser mejor recargar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esto aplica la configuraci\u00f3n sin cortar conexiones activas de forma brusca. Es una pr\u00e1ctica m\u00e1s limpia cuando Nginx ya est\u00e1 sirviendo tr\u00e1fico real.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Activar Nginx al arrancar el sistema<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para que Nginx arranque autom\u00e1ticamente al iniciar Ubuntu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl enable nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para comprobar si est\u00e1 habilitado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>systemctl is-enabled nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si devuelve<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>enabled<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx se iniciar\u00e1 autom\u00e1ticamente despu\u00e9s de reiniciar el servidor.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Archivos y carpetas importantes de Nginx en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una de las cosas que m\u00e1s confunde al principio es d\u00f3nde est\u00e1 cada archivo. Nginx tiene una estructura bastante clara en Ubuntu, pero conviene entenderla antes de tocar configuraci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Archivo principal nginx.conf<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El archivo principal est\u00e1 en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed se definen opciones globales del servidor. En una instalaci\u00f3n b\u00e1sica no hace falta tocarlo demasiado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi recomendaci\u00f3n es simple: si est\u00e1s empezando, no edites <code>nginx.conf<\/code> sin necesidad. La mayor\u00eda de configuraciones de sitios se hacen mejor en los bloques de servidor dentro de <code>sites-available<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Directorios sites-available y sites-enabled<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu organiza los sitios de Nginx as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/sites-available\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed guardas las configuraciones disponibles<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aqu\u00ed se enlazan las configuraciones activas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La idea es pr\u00e1ctica: creas un archivo de sitio en <code>sites-available<\/code> y lo activas con un enlace simb\u00f3lico en <code>sites-enabled<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Carpeta web por defecto \/var\/www\/html<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La web por defecto suele estar en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/www\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ah\u00ed encontrar\u00e1s el <code>index.html<\/code> inicial que muestra la p\u00e1gina de bienvenida.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para un proyecto real, es mejor crear una carpeta propia, por ejemplo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/www\/mi-sitio<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed mantienes separado el contenido de cada web.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Logs de acceso y errores<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Los logs principales est\u00e1n en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/nginx\/access.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">y:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/var\/log\/nginx\/error.log<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando algo falla, el archivo <code>error.log<\/code> suele ser uno de los mejores sitios para empezar a mirar.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Crear un sitio b\u00e1sico con Nginx en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora vamos un paso m\u00e1s all\u00e1: no solo instalar Nginx, sino crear un sitio b\u00e1sico propio. Esto te ayuda a entender c\u00f3mo se publicar\u00eda una web real.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Crear una carpeta para tu sitio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Crea una carpeta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mkdir -p \/var\/www\/mi-sitio\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Asigna permisos al usuario actual:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R $USER:$USER \/var\/www\/mi-sitio\/html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ajusta permisos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chmod -R 755 \/var\/www\/mi-sitio<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">A\u00f1adir un archivo index.html de prueba<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Crea el archivo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/var\/www\/mi-sitio\/html\/index.html<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>nano \/var\/www\/mi-sitio\/html\/index.html<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Pega este contenido:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"es\">\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;title>Mi sitio con Nginx&lt;\/title>\n&lt;\/head>\n&lt;body>\n  &lt;h1>Nginx funciona en Ubuntu&lt;\/h1>\n  &lt;p>Este sitio est\u00e1 servido con Nginx.&lt;\/p>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Guarda con <code>CTRL + O<\/code>, pulsa <code>Enter<\/code> y sal con <code>CTRL + X<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Crear un bloque de servidor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Crea un nuevo archivo de configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nano \/etc\/nginx\/sites-available\/mi-sitio<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">A\u00f1ade:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server {\n    listen 80;\n    listen &#91;::]:80;\n\n    root \/var\/www\/mi-sitio\/html;\n    index index.html index.htm;\n\n    server_name ejemplo.com www.ejemplo.com;\n\n    location \/ {\n        try_files $uri $uri\/ =404;\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si todav\u00eda no tienes dominio, puedes usar temporalmente la IP del servidor en <code>server_name<\/code> o dejarlo como ejemplo hasta configurar DNS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Activar el sitio con un enlace simb\u00f3lico<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Activa la configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ln -s \/etc\/nginx\/sites-available\/mi-sitio \/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si el sitio por defecto interfiere, puedes desactivarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Validar la configuraci\u00f3n con nginx -t<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de recargar Nginx, prueba la configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si todo est\u00e1 bien, ver\u00e1s algo como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>syntax is ok\ntest is successful<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora recarga Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Este paso es important\u00edsimo. Yo prefiero validar siempre con <code>nginx -t<\/code> antes de recargar, porque un error peque\u00f1o en una llave, un punto y coma o una ruta puede impedir que Nginx arranque correctamente.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Instalar Nginx desde APT o desde el repositorio oficial: qu\u00e9 opci\u00f3n elegir<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para la mayor\u00eda de usuarios, instalar Nginx con APT desde Ubuntu es suficiente. Es r\u00e1pido, estable y f\u00e1cil de mantener. Pero hay casos donde puede interesarte usar el repositorio oficial de Nginx.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La documentaci\u00f3n oficial de Nginx indica que su repositorio permite instalar versiones <strong>Stable<\/strong> y <strong>Mainline<\/strong> de NGINX Open Source para sistemas de producci\u00f3n compatibles.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo basta con el paquete de Ubuntu<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usa el paquete de Ubuntu si:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>quieres instalar Nginx r\u00e1pido;<\/li>\n\n\n\n<li>est\u00e1s montando una web sencilla;<\/li>\n\n\n\n<li>est\u00e1s preparando un proxy inverso est\u00e1ndar;<\/li>\n\n\n\n<li>priorizas estabilidad;<\/li>\n\n\n\n<li>no necesitas funciones de una versi\u00f3n m\u00e1s reciente;<\/li>\n\n\n\n<li>quieres actualizaciones integradas con el sistema.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Para un VPS, una m\u00e1quina virtual o un servidor Ubuntu donde solo necesitas servir p\u00e1ginas, configurar HTTPS y crear hosts virtuales, APT suele ser la mejor opci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo conviene usar la \u00faltima versi\u00f3n de Nginx<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puede interesarte el repositorio oficial si:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>necesitas una versi\u00f3n m\u00e1s reciente;<\/li>\n\n\n\n<li>quieres usar una caracter\u00edstica nueva;<\/li>\n\n\n\n<li>est\u00e1s replicando una configuraci\u00f3n concreta de producci\u00f3n;<\/li>\n\n\n\n<li>necesitas paquetes Stable o Mainline directamente desde Nginx;<\/li>\n\n\n\n<li>administras varios servidores y quieres homogeneizar versiones.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx publica instrucciones para configurar su repositorio APT en Ubuntu, incluyendo el uso de una clave de firmado y el archivo de repositorio correspondiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para este art\u00edculo, la instalaci\u00f3n principal es con APT porque responde mejor a la intenci\u00f3n de b\u00fasqueda \u201cinstalar nginx en ubuntu\u201d: r\u00e1pida, est\u00e1ndar y suficiente para la mayor\u00eda.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Errores comunes al instalar Nginx en Ubuntu y c\u00f3mo solucionarlos<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque instalar Nginx en Ubuntu es sencillo, hay varios fallos t\u00edpicos que se repiten una y otra vez. Aqu\u00ed van los m\u00e1s habituales y c\u00f3mo resolverlos.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Nginx no arranca despu\u00e9s de instalarlo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Comprueba el estado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luego revisa logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo journalctl -u nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes probar la configuraci\u00f3n:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">sudo nginx -t<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si hay un error de sintaxis, Nginx te dir\u00e1 el archivo y la l\u00ednea aproximada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">El navegador no muestra la p\u00e1gina de bienvenida<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Comprueba lo siguiente:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luego revisa el firewall:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si UFW est\u00e1 activo, permite HTTP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'Nginx HTTP'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n confirma la IP: hostname -I<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y prueba localmente: curl -I localhost<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Si localmente responde pero desde el navegador no, probablemente el problema est\u00e1 en firewall, reglas cloud, DNS o IP incorrecta.<br><br>Error \u201caddress already in use\u201d<br><br>Este error suele aparecer cuando otro servicio ya est\u00e1 usando el puerto 80 o 443.<br><br>Comprueba qu\u00e9 proceso usa el puerto 80:<br><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ss -tulpn | grep ':80'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si Apache u otro servidor est\u00e1 ocupando el puerto, tendr\u00e1s que detenerlo o cambiar puertos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, para detener Apache:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl stop apache2<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y despu\u00e9s reiniciar Nginx:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Error de sintaxis en la configuraci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ejecuta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si aparece algo como:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>unexpected \"}\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">o:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>directive is not terminated by \";\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">revisa el archivo indicado. En Nginx, muchas directivas terminan con punto y coma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>root \/var\/www\/mi-sitio\/html;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Un solo <code>;<\/code> olvidado puede romper la configuraci\u00f3n.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Primeros pasos despu\u00e9s de instalar Nginx<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez instalado Nginx y comprobado que funciona, el siguiente paso depende de lo que quieras montar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, suelo verlo como una base: primero dejo Nginx respondiendo, luego configuro firewall, despu\u00e9s creo el sitio o bloque de servidor y, cuando toca publicar algo real, a\u00f1ado dominio y HTTPS.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Configurar un dominio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para usar un dominio, crea registros DNS apuntando a la IP del servidor:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>registro <code>A<\/code> para <code>ejemplo.com<\/code>;<\/li>\n\n\n\n<li>registro <code>A<\/code> para <code>www.ejemplo.com<\/code>, si quieres usar <a href=\"http:\/\/www\">www<\/a>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Luego en el bloque de servidor usa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server_name ejemplo.com www.ejemplo.com;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s valida y recarga:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t\nsudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">A\u00f1adir HTTPS con Let\u2019s Encrypt y Certbot<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el dominio ya apunta al servidor, lo normal es a\u00f1adir HTTPS con Let\u2019s Encrypt y Certbot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La instalaci\u00f3n exacta puede variar, pero el flujo habitual es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install certbot python3-certbot-nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luego:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo certbot --nginx -d ejemplo.com -d www.ejemplo.com<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Certbot puede modificar la configuraci\u00f3n de Nginx para a\u00f1adir SSL\/TLS autom\u00e1ticamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Usar Nginx como proxy inverso o base de una pila LEMP<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez instalado, Nginx puede servir como:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>servidor de sitios est\u00e1ticos;<\/li>\n\n\n\n<li>proxy inverso hacia una aplicaci\u00f3n;<\/li>\n\n\n\n<li>frontal para una API;<\/li>\n\n\n\n<li>balanceador de carga;<\/li>\n\n\n\n<li>parte de una pila LEMP con Linux, Nginx, MySQL\/MariaDB y PHP.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso merece la pena entender bien la instalaci\u00f3n b\u00e1sica. Es el primer paso antes de montar aplicaciones m\u00e1s completas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Tabla r\u00e1pida de comandos \u00fatiles<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Acci\u00f3n<\/th><th>Comando<\/th><\/tr><\/thead><tbody><tr><td>Actualizar repositorios<\/td><td><code>sudo apt update<\/code><\/td><\/tr><tr><td>Instalar Nginx<\/td><td><code>sudo apt install nginx<\/code><\/td><\/tr><tr><td>Ver versi\u00f3n<\/td><td><code>nginx -v<\/code><\/td><\/tr><tr><td>Ver estado<\/td><td><code>sudo systemctl status nginx<\/code><\/td><\/tr><tr><td>Iniciar Nginx<\/td><td><code>sudo systemctl start nginx<\/code><\/td><\/tr><tr><td>Detener Nginx<\/td><td><code>sudo systemctl stop nginx<\/code><\/td><\/tr><tr><td>Reiniciar Nginx<\/td><td><code>sudo systemctl restart nginx<\/code><\/td><\/tr><tr><td>Recargar configuraci\u00f3n<\/td><td><code>sudo systemctl reload nginx<\/code><\/td><\/tr><tr><td>Validar configuraci\u00f3n<\/td><td><code>sudo nginx -t<\/code><\/td><\/tr><tr><td>Ver logs del servicio<\/td><td><code>sudo journalctl -u nginx<\/code><\/td><\/tr><tr><td>Permitir HTTP en UFW<\/td><td><code>sudo ufw allow 'Nginx HTTP'<\/code><\/td><\/tr><tr><td>Permitir HTTP y HTTPS<\/td><td><code>sudo ufw allow 'Nginx Full'<\/code><\/td><\/tr><tr><td>Ver IP del servidor<\/td><td><code>hostname -I<\/code><\/td><\/tr><tr><td>Probar respuesta local<\/td><td><code>curl -I localhost<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Nginx en Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar Nginx en Ubuntu es uno de los primeros pasos m\u00e1s \u00fatiles si quieres montar un servidor web, publicar una p\u00e1gina, crear un proxy inverso o preparar una pila LEMP. La instalaci\u00f3n con APT es r\u00e1pida, estable y suficiente para la mayor\u00eda de casos:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s, lo importante es no quedarse solo en \u201cya est\u00e1 instalado\u201d. Conviene comprobar el servicio, abrir el firewall, probar la IP en el navegador, entender d\u00f3nde est\u00e1n los archivos de configuraci\u00f3n y validar cualquier cambio con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para una m\u00e1quina virtual, un VPS o un servidor Ubuntu moderno, Nginx es una base ligera y muy vers\u00e1til. Puedes empezar con una web est\u00e1tica sencilla y, m\u00e1s adelante, usarlo como proxy inverso, balanceador, cach\u00e9 HTTP o puerta de entrada para aplicaciones m\u00e1s complejas.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Dudas de la comunidad<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo instalar Nginx en Ubuntu?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Actualiza los repositorios e instala el paquete:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s comprueba el servicio:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 comando instala Nginx en Ubuntu?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El comando principal es:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque es recomendable ejecutarlo despu\u00e9s de:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo saber si Nginx est\u00e1 funcionando?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes comprobarlo con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puedes probar desde terminal:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl -I localhost<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O abrir la IP del servidor en el navegador.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfD\u00f3nde est\u00e1 la configuraci\u00f3n de Nginx en Ubuntu?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">El archivo principal est\u00e1 en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/nginx.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Los sitios suelen configurarse en:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/sites-available\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y se activan desde:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/etc\/nginx\/sites-enabled\/<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfC\u00f3mo reiniciar Nginx en Ubuntu?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Usa:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl restart nginx<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Si solo cambiaste configuraci\u00f3n, suele ser mejor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl reload nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfEs mejor instalar Nginx desde APT o desde el repositorio oficial?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para la mayor\u00eda de usuarios, APT es suficiente. Si necesitas una versi\u00f3n m\u00e1s reciente o quieres usar los paquetes Stable\/Mainline directamente desde Nginx, puedes configurar el repositorio oficial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 hago si Nginx no arranca?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Primero valida la configuraci\u00f3n:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nginx -t<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Luego revisa el estado y los logs:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl status nginx\nsudo journalctl -u nginx<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 puertos necesita Nginx?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para HTTP usa el puerto 80. Para HTTPS usa el puerto 443. Con UFW puedes abrirlos as\u00ed:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 'Nginx HTTP'\nsudo ufw allow 'Nginx Full'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Opini\u00f3n Personal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>instalar Nginx en Ubuntu es una de las mejores decisiones cuando quieres montar un servidor web ligero, estable y preparado para crecer<\/strong>. No lo veo solo como \u201cinstalar un paquete m\u00e1s\u201d, sino como poner la primera piedra de una infraestructura seria, incluso si al principio solo vas a publicar una p\u00e1gina sencilla.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que m\u00e1s me gusta de Nginx es que combina muy bien dos cosas: <strong>simplicidad inicial y potencia a largo plazo<\/strong>. Puedes instalarlo con un par de comandos usando APT, comprobar que funciona en pocos minutos y tener una p\u00e1gina respondiendo desde tu servidor. Pero, al mismo tiempo, ese mismo Nginx puede acabar funcionando como proxy inverso, balanceador de carga, cach\u00e9 HTTP o parte de una pila LEMP m\u00e1s completa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, cuando pienso en una m\u00e1quina virtual o en cualquier VPS con Ubuntu, Nginx me parece una opci\u00f3n muy l\u00f3gica porque consume pocos recursos y est\u00e1 pensado para manejar muchas conexiones simult\u00e1neas. Eso se nota especialmente cuando quieres tener un servidor eficiente sin complicarte demasiado desde el primer d\u00eda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n valoro mucho que Ubuntu ya incluya Nginx en sus repositorios oficiales. Para la mayor\u00eda de proyectos, no hace falta a\u00f1adir 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\u00e1n empezando en administraci\u00f3n de servidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, instalarlo es solo el principio. La diferencia entre una instalaci\u00f3n b\u00e1sica y una configuraci\u00f3n bien hecha est\u00e1 en los detalles: comprobar el estado con <code>systemctl<\/code>, validar cambios con <code>nginx -t<\/code>, entender <code>sites-available<\/code> y <code>sites-enabled<\/code>, revisar los logs cuando algo falla y no olvidarse del firewall. Son pasos peque\u00f1os, pero marcan la diferencia entre \u201cme funciona de casualidad\u201d y \u201cs\u00e9 exactamente qu\u00e9 est\u00e1 pasando en mi servidor\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi opini\u00f3n es clara: <strong>si est\u00e1s usando Ubuntu y quieres publicar una web, montar un proxy inverso o preparar un entorno para aplicaciones, Nginx deber\u00eda estar entre tus primeras opciones<\/strong>. Es r\u00e1pido, estable, flexible y tiene una curva de aprendizaje bastante razonable. No necesitas dominarlo todo desde el primer d\u00eda, pero aprender bien su instalaci\u00f3n y configuraci\u00f3n b\u00e1sica te da una base muy s\u00f3lida para cualquier proyecto web.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y t\u00fa, \u00bfya has instalado Nginx en Ubuntu? \u00bfLo usas como servidor web, proxy inverso o para una pila LEMP? D\u00e9jame tu experiencia en los comentarios: qu\u00e9 versi\u00f3n de Ubuntu usaste, si tuviste alg\u00fan error y qu\u00e9 configuraci\u00f3n te funcion\u00f3 mejor.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Qu\u00e9 es Nginx y por qu\u00e9 instalarlo en Ubuntu Nginx es un servidor web de c\u00f3digo abierto y alto rendimiento que tambi\u00e9n puede funcionar como proxy inverso, balanceador de carga y cach\u00e9 HTTP. Dicho de forma sencilla: sirve p\u00e1ginas web, recibe tr\u00e1fico, lo redirige a aplicaciones internas cuando hace falta y puede ayudar a que [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":9285,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_aifi_custom_prompt":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[952],"tags":[786,319,785,779,1002,888,203],"class_list":["post-9284","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guias","tag-apache","tag-instalar","tag-kernel","tag-linux","tag-nginx","tag-ubuntu","tag-web"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9284","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=9284"}],"version-history":[{"count":2,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9284\/revisions"}],"predecessor-version":[{"id":9287,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/9284\/revisions\/9287"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/9285"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=9284"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=9284"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=9284"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}