Cómo instalar Nginx en CentOS 8

Introducción

Nginx es uno de los servidores web más populares del mundo y es responsable de alojar algunos de los sitios más grandes y populares en Internet. Es más amigable con los recursos que Apache en la mayoría de los casos y puede usarse como servidor web o proxy inverso.

En esta guía, discutiremos cómo instalar Nginx en un servidor CentOS 8.

Prerrequisitos

Para seguir esta guía, necesitará sacceso a un servidor CentOS 8 como usuario no root con privilegios de sudo y un firewall activo instalado en tu servidor. Para configurar esto, puede seguir una guía de configuración básica de servidores para CentOS 8.

Paso 1 – Instalación del servidor web Nginx

Para instalar Nginx, utilizaremos el administrador de paquetes dnf, que es el nuevo administrador de paquetes predeterminado en CentOS 8.

Debes instalar el paquete nginx con el siguiente comando:

Cuando se te solicite, ingresa y para confirmar que deseas instalar nginx. Después de eso, dnf instalará Nginx y cualquier dependencia requerida en tu servidor.

Una vez finalizada la instalación, debes ejecutar los siguientes comandos para habilitar e iniciar el servidor:

Esto hará que Nginx se inicie en el arranque del sistema.

Paso 2 – Ajustar de las reglas del firewall

En caso de que hayas habilitado el firewall firewalld como se indica en la guía de configuración básica de servidor para CentOS 8, deberás ajustar la configuración del firewall. Esto para permitir conexiones externas en tu servidor web Nginx, que se ejecuta en el puerto 80 de forma predeterminada.

Ejecuta el siguiente comando para habilitar permanentemente las conexiones HTTP en el puerto 80:

Para verificar que el servicio http de firewall se agregó correctamente, puedes ejecutar:

Verás resultados como este:

Para aplicar los cambios, deberás volver a cargar el servicio de firewall:

Ahora tu servidor Nginx está completamente instalado y listo para ser visitado por visitantes externos.

Paso 3 – Verificando tu servidor web

Ahora puedes probar si tu servidor web Nginx está en funcionamiento. Debes acceder a la dirección IP pública o nombre de dominio de tu servidor desde tu navegador web.

Si no tienes un nombre de dominio apuntado a tu servidor y no conoces la dirección IP pública de tu servidor, puedes encontrarlo ejecutando el siguiente comando:

Esto imprimirá algunas direcciones IP. Puedes probar cada una de ellas en tu navegador web.

Como alternativa, puedes verificar qué dirección IP es accesible, como se ve desde otras ubicaciones en Internet:

Escribe la dirección que recibes en tu navegador web y te llevará a la página de destino predeterminada de Nginx:

Si ves esta página, tu servidor web ahora está instalado correctamente.

Paso 4 – Administrar el proceso Nginx

Ahora que tienes tu servidor web en funcionamiento, revisaremos cómo administrar el servicio Nginx systemctl.

Siempre que necesites detener tu servidor web, puedes usar:

Para iniciar el servidor web cuando se detiene, escribe:

Para detener y luego volver a iniciar el servicio, puedes usar:

Nginx también puedes recargar los cambios de configuración sin desconectar las conexiones. Para hacer esto, escribe:

De forma predeterminada, Nginx está configurado para iniciarse automáticamente cuando se inicia el servidor. Si esto no es lo que deseas, puedes deshabilitar este comportamiento escribiendo:

Para volver a habilitar el servicio y hacer que Nginx se inicie nuevamente en el arranque, puedes usar:

Paso 5 – Familiarizarte con los archivos y directorios importantes de Nginx

Ahora que sabes cómo administrar el servicio Nginx, deberías tomarte unos minutos para familiarizarte con algunos directorios y archivos importantes.

Contenido

  • /usr/share/nginx/html. El contenido web real, que por defecto solo consiste en la página predeterminada de Nginx que viste anteriormente, se muestra fuera del directorio /usr/share/nginx/html. Esto se puede cambiar alterando los archivos de configuración de Nginx.

Configuración del servidor

  • /etc/nginx: El directorio de configuración de Nginx. Todos los archivos de configuración de Nginx residen aquí.
  • /etc/nginx/nginx.conf: El archivo de configuración principal de Nginx. Esto se puede modificar para realizar cambios en la configuración global de Nginx.
  • /etc/nginx/conf.d/. Este directorio contiene archivos de configuración de bloque del servidor, donde puedes definir los sitios web alojados en Nginx. Un enfoque típico es tener cada sitio web en un archivo separado que lleva el nombre del dominio del sitio web, como your_domain.conf.

Registros del servidor

  • /var/log/nginx/access.log. Cada solicitud a tu servidor web se registra en este archivo de registro a menos que Nginx esté configurado para hacerlo de otra manera.
  • /var/log/nginx/error.log. Cualquier error de Nginx se mostrará en este registro.

Paso 6 – Configuración de bloques de servidor (opcional)

En caso de que desees alojar múltiples sitios web dentro del mismo servidor web Nginx, deberás configurar bloques de servidores. Los bloques de servidores Nginx funcionan de manera similar a los hosts virtuales de Apache. Estos permiten que un solo servidor responda a múltiples nombres de dominio y muestre contenido diferente para cada uno de ellos.

En CentOS 8, los bloques del servidor se definen en archivos .conf ubicados en /etc/nginx/conf.d.

Configuraremos un bloque de servidor para un dominio llamado your_domain. Para obtener más información sobre cómo configurar un nombre de dominio puedes consultar esta guía.

Por defecto, Nginx en CentOS 8 está configurado para mostrar documentos fuera de un directorio en /usr/share/nginx/html. Si bien esto funciona bien para un solo sitio, puede volverse inmanejable si alojas varios sitios.

En lugar de modificar /usr/share/nginx/html, crearemos una estructura de directorio dentro del sitio web your_domain en /var/www. Vamos a dejar /usr/share/nginx/html como el directorio predeterminado que se mostrará si una solicitud del cliente no coincide con ningún otro sitio.

Debes crear el directorio para your_domain de la siguiente manera, utilizando el indicador –p para crear los directorios principales necesarios:

A continuación, debes asignar la propiedad del directorio con la variable de entorno $USER, que debe hacer referencia a tu usuario actual del sistema:

A continuación, crearemos una página index.html de muestra para probar la configuración de bloqueo del servidor. El editor de texto predeterminado que viene con CentOS 8 es vi.

Vi es un editor de texto extremadamente poderoso, pero puede ser algo obtuso para los usuarios que carecen de experiencia con él.

Página de prueba

Es posible que desees instalar un editor más fácil de usar, como nano para facilitar la edición de archivos de configuración en tu servidor CentOS 8:

Ahora puedes usar nano para crear el archivo de muestra index.html:

Dentro de ese archivo, agrega el siguiente código HTML:

Debes guardar y cerrar el archivo cuando hayas terminado. Si usaste nano, puedes hacerlo presionando CTRL + XY y luego ENTER.

Para que Nginx muestre este contenido, necesitamos crear un bloque de servidor con las directivas correctas que apuntan a nuestra raíz web personalizada. Crearemos un nuevo bloque de servidor en /etc/nginx/conf.d/your_domain.conf :

Debes pegar el siguiente bloque de configuración:

Guarda y cierra el archivo cuando hayas terminado de editar tu contenido.

Para asegurarte de que no haya errores de sintaxis en ninguno de tus archivos Nginx, debes ejecutar:

Si no hay ningún problema, verás el siguiente resultado:

Una vez que pases la prueba de configuración, debes reiniciar Nginx para habilitar tus cambios:

Antes de que puedas probar los cambios desde tu navegador, necesitarás actualizar los contextos de seguridad SELinux de tu servidor. Esto para que Nginx pueda mostrar contenido desde el directorio /var/www/your_domain. 

El siguiente comando permitirá que la raíz de tu documento personalizado se muestre como contenido HTTP:

Ahora puedes probar la configuración de tu dominio personalizado navegando a http://your_domain, donde verás algo como esto:

Esta página muestra el código HTML que hemos definido en la raíz del documento personalizado creado para el bloque del servidor. Si puedes ver esta página, significa que tu servidor Nginx está configurado correctamente para mostrar a tu dominio.

Conclusión

En esta guía, hemos visto cómo instalar y configurar Nginx, un servidor web de alto rendimiento y proxy inverso.

Revisamos cómo administrar el servicio Nginx que se ejecuta en tu servidor, y cuáles son los principales directorios utilizados por Nginx para almacenar archivos de configuración, contenido y registros.

A partir de aquí, tienes muchas opciones para el tipo de contenido. También para las tecnologías que puedes utilizar en los sitios web alojados en tu servidor web.