Está en la página 1de 9

TUTORIAL

Cómo instalar Nginx en CentOS 8


Introducción
Nginx es uno de los servidores web más populares del mundo y aloja algunos
de los sitios más grandes y con mayor tráfico en Internet. Es más fácil de utilizar
que Apache en la mayoría de los casos y puede emplearse como servidor web o
proxy inverso.

En esta guía, veremos la manera de instalar Nginx en un servidor de CentOS 8.

Requisitos previos
Para seguir esta guía, necesitará acceso a un servidor CentOS 8 como usuario
no root con privilegios sudo y un firewall activo instalado en su servidor. Para
configurarlo, siga nuestra Guía de configuración inicial de servidores para
CentOS 8.

Paso 1: Instalar el servidor web Nginx


Para instalar Nginx, usaremos el administrador de paquetes dnf, el nuevo
administrador de paquetes predeterminado de CentOS 8.

Instale el paquete nginx con:

 sudo dnf install nginx


Copy

Cuando se le solicite, introduzca y para confirmar que desea instalar nginx.


Después, dnf instalará Nginx y cualquier dependencia necesaria en su servidor.

Cuando finalice la instalación, ejecute los siguientes comandos para habilitar e


iniciar el servidor:

 sudo systemctl enable nginx



 sudo systemctl start nginx

Copy

Esto hará que Nginx se inicie cuando se cargue el sistema.

Paso 2: Ajustar las reglas del Firewall


En caso de que haya habilitado el firewall firewalld como se indica en
nuestra guía de configuración inicial de servidores para CentOS 8, deberá
ajustar la configuración del firewall para permitir conexiones externas en su
servidor web Nginx, que se ejecuta en el puerto 80 de forma predeterminada.

Ejecute el siguiente comando para habilitar permanentemente las conexiones


HTTP en el puerto 80:

 sudo firewall-cmd --permanent --add-service=http


Copy

Para verificar que el servicio de firewall http se haya añadido correctamente,


puede ejecutar lo siguiente:

 sudo firewall-cmd --permanent --list-all


Copy

Verá resultados como este:

Output
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Para aplicar los cambios, deberá volver a cargar el servicio de firewall:
 sudo firewall-cmd --reload

Copy

Con esto, su servidor Nginx estará completamente instalado y listo para que sus
visitantes externos puedan acceder a él.

Paso 3: Comprobar su servidor web


Ahora puede probar si su servidor web Nginx funciona correctamente
accediendo a su dirección IP pública o nombre de dominio desde su navegador
web.

Nota: En caso de que utilice DigitalOcean como proveedor de hosting de DNS,


puede consultar nuestros documentos sobre productos para hallar instrucciones
detalladas sobre cómo configurar un nuevo nombre de dominio y apuntarlo a su
servidor.

Si no tiene un nombre de dominio para su servidor y no conoce la dirección IP


pública de este, puede encontrarla ejecutando el siguiente comando:

 ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Copy

Con esto se mostrarán algunas direcciones IP. Puede probar cada una de estas
en su navegador web.

Como alternativa, podrá verificar la dirección IP accesible, como se ve desde


otras ubicaciones de Internet:

 curl -4 icanhazip.com

Copy

Escriba la dirección que reciba en su navegador web. Esta lo llevará a la página


de destino predeterminada de Nginx:
Si ve esta página, su servidor web estará correctamente instalado.

Paso 4: Administrar el proceso de Nginx


Ahora que su servidor web funciona, revisaremos la manera de administrar el
servicio de Nginx a través de systemctl.

Siempre que deba detener su servidor web, puede usar lo siguiente:

 sudo systemctl stop nginx


Copy

Para iniciar el servidor web cuando no esté activo, escriba lo siguiente:

 sudo systemctl start nginx


Copy

Para detener y luego iniciar el servicio de nuevo, puede usar lo siguiente:

 sudo systemctl restart nginx


Copy
Nginx puede volver a cargar los cambios en la configuración sin cerrar las
conexiones. Para hacer esto, escriba lo siguiente:

 sudo systemctl reload nginx


Copy

De forma predeterminada,Nginx está configurado para iniciarse


automáticamente cuando lo haga el servidor. Si no es lo que quiere, deshabilite
este comportamiento escribiendo lo siguiente:

 sudo systemctl disable nginx


Copy

Para volver a habilitar el servicio y hacer que Nginx se inicie de nuevo en el


arranque, puede usar lo siguiente:

 sudo systemctl enable nginx


Copy

Paso 5: Familiarizarse con archivos y directorios


importantes de Ngnix
Ahora que sabe administrar el servicio de Nginx, debería tomarse unos minutos
para familiarizarse con algunos directorios y archivos importantes.

Contenido

 /usr/share/nginx/html: el contenido web real, que por defecto solo consta


de la página predeterminada de Nginx que vio antes, se presenta desde el
directorio /usr/share/nginx/html. Esto se puede cambiar modificando los
archivos de configuración de Nginx.

Configuración del servidor

 /etc/nginx: directorio de configuración de Nginx. En él se encuentran todos


los archivos de configuración de Nginx.
 /etc/nginx/nginx.conf: archivo de configuración principal de Nginx. Esto se
puede modificar para realizar cambios en la configuración general de Nginx.
 /etc/nginx/conf.d/: este directorio contiene los archivos de configuración
en bloque del servidor, donde puede definir los sitios web que se alojan en
Nginx. Un enfoque típico consiste en tener cada sitio web en un archivo
independiente cuyo nombre derive del nombre de dominio del sitio web,
como your_domain.conf.

Registros del servidor

 /var/log/nginx/access.log: cada solicitud a su servidor web se registra en


este archivo de registro, a menos que Nginx esté configurado para hacer algo
diferente.
 /var/log/nginx/error.log: cualquier error de Nginx se asentará en este
registro.

Paso 6: Configurar bloques de servidor (opcional)


En el caso de que desee alojar varios sitios web en el mismo servidor web de
Nginx, deberá configurar bloques de servidor. Los bloques de servidor de Nginx
funcionan de forma similar a los hosts virtuales de Apeche, y permiten que un
único servidor responda a varios nombres de dominio y presenten contenido
diferente para cada uno de ellos. En CentOS 8, los bloques de servidor se
definen en los archivos .conf ubicados en /etc/nginx/conf.d.

Crearemos un bloque de servidor para un dominio llamado your_domain.


Consulte nuestra Introducción a DNS de DigitalOcean para hallar más
información sobre la configuración de un nombre de dominio con DigitalOcean.

Por defecto, Nginx en CentOS 8 está configurado para presentar documentos


de un directorio en /usr/share/nginx/html. Si bien esto funciona bien para un
solo sitio, puede ser difícil de manejar si aloja varios. En vez de
modificar /usr/share/nginx/html, crearemos una estructura de directorios
dentro de /var/www para el sitio web your_domain y
dejaremos /usr/share/nginx/html como directorio predeterminado que se
presentará si un cliente no coincide con otros sitios.

Cree el directorio para your_domain como se muestra a continuación, usando


el indicador -p para crear cualquier directorio principal necesario:

 sudo mkdir -p /var/www/your_domain/html


Copy
A continuación, asigne propiedad del directorio con la variable de
entorno $USER, que debería hacer referencia a su usuario actual de sistema:

 sudo chown -R $USER:$USER /var/www/your_domain/html


Copy

A continuación, crearemos una página de ejemplo index.html para probar la


configuración del bloque de servidor. El editor de texto predeterminado que
viene con CentOS 8 es vi. vi es un editor de texto extremadamente potente,
pero puede ser un tanto obtuso para los usuarios que carecen de experiencia
con él. Posiblemente desee instalar un editor más sencillo, como nano, para
facilitar la edición de los archivos de configuración en su servidor de CentOS 8.

 sudo dnf install nano


Copy

Ahora puede usar nano para crear el archivo index.html de ejemplo:

 nano /var/www/your_domain/html/index.html

Copy

Dentro de ese archivo, añada el siguiente código HTML:

/var/www/your_domain/html/index.html

<html>
<head>
<title>Welcome to your_domain</title>
</head>
<body>
<h1>Success! Your Nginx server is successfully configured for
<em>your_domain</em>. </h1>
<p>This is a sample page.</p>
</body>
</html>

Copy

Guarde y cierre el archivo cuando termine. Si usó nano, puede hacerlo


pulsando CTRL + X, Y y luego ENTER.
Para que Nginx presente este contenido, deberemos crear un bloque de
servidor con las directivas correctas que apunten a nuestra raíz web
personalizada. Crearemos un nuevo bloque de servidor
en /etc/nginx/conf.d/your_domain.conf:
 sudo nano /etc/nginx/conf.d/your_domain.conf

Copy

Pegue el siguiente bloque de configuración:

/etc/nginx/conf.d/your_domain.conf

server {
listen 80;
listen [::]:80;

root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;

server_name your_domain www.your_domain;

location / {
try_files $uri $uri/ =404;
}
}

Copy

Guarde y cierre el archivo cuando termine de editar su contenido.

Para garantizar que no haya errores de sintaxis en ninguno de sus archivos de


Nginx, ejecute lo siguiente:

 sudo nginx -t

Copy

Si no hay problemas, verá el siguiente resultado:

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Una vez superada la prueba de configuración, reinicie Nginx para habilitar sus
cambios:
 sudo systemctl restart nginx

Copy

Antes de probar los cambios desde su navegador, deberá actualizar los


contextos de seguridad de SELinux de su servidor de modo que Nginx pueda
presentar contenido desde el directorio /var/www/your_domain.
El siguiente comando permitirá presentar el root de su documento
personalizado como contenido HTTP:

 chcon -vR system_u:object_r:httpd_sys_content_t:s0 /var/www/your_domain/


Copy

Ahora puede probar su configuración de dominio personalizada dirigiéndose


a http://your_domain, donde verá algo similar a esto:

Esta página renderiza el código HTML que hemos definido en la raíz de


documento personalizada creada para el bloque de servidor. Si puede ver esta
página, significa que su servidor Nginx está correctamente configurado para
presentar su dominio.

Conclusión
En esta guía, vimos la manera de instalar y configurar Nginx, un servidor web de
alto rendimiento y proxy inverso. Revisamos la manera de administrar el servicio
de Nginx que se ejecuta en su servidor y los principales directorios usados por
Nginx para almacenar archivos de configuración, contenido y registros.

A partir de este punto, tiene muchas opciones para el tipo de contenido y las
tecnologías que posiblemente desee usar en los sitios web alojados en su
servidor web.

También podría gustarte