¿Qué es Nginx?
Nginx (pronunciado 'motor X') es una alternativa a Apache y se considera uno de los servidores web HTTP más populares del mundo. A diferencia de Apache, Nginx tiende a consumir menos recursos y mejora la capacidad de respuesta del servidor. Su diseño basado en eventos es lo que lo hace amigable con los recursos.
Sobre todo, permite a los administradores establecer configuraciones avanzadas y puede manejar una gran cantidad de conexiones simultáneas. Además de ser una buena opción para un servidor web HTTP, Nginx también funciona como proxy inverso, equilibrador de carga y servidor de correo estándar.
En este artículo, aprenderá cómo instalar y configurar Nginx en CentOS 7 .
Requisitos previos
- Un servidor o VM autogestionado de CentOS
- Un dominio. Deberá conectar un dominio a su servidor web Nginx
- Sudo o raíz privilegios [[email protected] ~]
- SELinux configurado correctamente
Cómo instalar Nginx en CentOS 7
Generalmente, CentOS es el paquete de distribución preferido en la industria del hospedaje. Actualmente, CentOS 8 es la última versión, mientras que CentOS 7 es compatible hasta el año 2024.
El procedimiento de configuración a continuación detalla los pasos necesarios para configurar Nginx en CentOS 7.
Para obtener instrucciones de instalación para CentOS 8, lea Cómo instalar Nginx en CentOS 8.
Paso 1:actualizar las listas de paquetes del repositorio
Para hacerlo, ejecute el siguiente comando:
sudo yum -y update
-y
es un parámetro opcional. Sirve para evitar preguntas de confirmación. Lo usaremos mucho, como notará. Si no utiliza este parámetro, se le pedirá que confirme sus comandos.
Paso 2:Instale paquetes adicionales para Enterprise Linux (EPEL)
Nginx no está disponible en los repositorios estándar que vienen con el paquete CentOS, por lo que deberá instalar el repositorio EPEL en su servidor. EPEL es de uso gratuito y proporciona numerosos paquetes de código abierto para instalar con Yum.
Para instalar EPEL, ejecute el siguiente comando usando el administrador de paquetes Yum:
sudo yum install -y epel-release
Paso 3:Instalar Nginx
El paso número dos ha agregado el repositorio Nginx a su servidor. Ahora, puede instalar Nginx ejecutando el siguiente comando yum:
sudo yum –y install nginx
Paso 4:Inicie el servicio Nginx
Su instancia de Nginx está instalada, pero no se iniciará automáticamente.
Para iniciar Nginx, ejecute:
sudo systemctl start nginx
Después de presionar enter, no obtendrá un valor de retorno. Sin embargo, Nginx debería haber comenzado. Para comprobar su estado, ejecute:
sudo systemctl status nginx
Debería haber un texto verde que diga 'activo (en ejecución).' Si no puede encontrarlo, es posible que su instancia de Nginx no se haya iniciado correctamente.
Paso 5:Configure Nginx para que se inicie en el arranque
La mayoría de los administradores querrán asegurarse de que NGINX se inicie automáticamente cada vez que se reinicie el servidor. Para configurar esto, ejecute:
sudo systemctl enable nginx
Paso 6:Configure el cortafuegos para permitir el tráfico
CentOS 7 habilita los firewalls de forma predeterminada y bloquea el acceso a los puertos 80 y 443. Bloqueará cualquier paquete HTTPS y HTTP entrante de Nginx.
Para permitir el tráfico HTTP y HTTPS, ejecute los siguientes comandos:
firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload
Después de cada comando, debería ver success
indicando que el comando se ejecutó correctamente.
Paso 7:Verificar la instalación de Nginx
La forma más fácil de verificar si Nginx se está ejecutando correctamente es visitando la dirección IP pública de su servidor. Simplemente abra su navegador web y visite http://server_IP_or_domain_name // fuerte
Primero, busque la dirección IP pública de su servidor.
ip a
Nuestra dirección IP es 192.168.122.1/24 . Copie su dirección IP y péguela en su navegador. Esto debería cargar el Bienvenido a Nginx página.
Cómo resolver el error "prueba fallida"
Si recibe un ‘prueba fallida’ mensaje de error para el archivo nginx.conf, es posible que tenga un problema con la dirección IP.
El servicio Nginx escucha IPv4 e IPv6 de forma predeterminada. Su prueba fallará si su servidor no es compatible con IPv6. Sin embargo, esto se puede solucionar modificando el archivo de configuración principal.
Abra el archivo de configuración principal, /etc/nginx/nginx.conf . Busque y comente la siguiente línea:
listen [::]:80 default_server;
Simplemente agregue '#' al comienzo de la línea. Debería verse así:
# listen [::]:80 default_server;
Guarde los cambios que ha realizado y vuelva a cargar el servicio Nginx.
sudo systemctl reload nginx
Busque la dirección IP de su servidor en su navegador. Debería ver la página de prueba predeterminada de Nginx.
Archivos de configuración y raíz de Nginx
Definitivamente necesitará conocer la ubicación de los archivos de configuración de Nginx y el directorio raíz del servidor Nginx predeterminado.
Bloques de servidor adicionales
En Apache, los administradores usan hosts virtuales para ejecutar varios sitios web. Con Nginx, ejecutar varios sitios web en un solo servidor se logra con bloques de servidor.
Se agregan bloques de servidor adicionales mediante la creación de nuevos archivos de configuración con una extensión de archivo .conf. Coloque estos archivos en /etc/nginx/conf.d y se cargarán cada vez que se inicie Nginx.
Raíz del servidor Nginx predeterminado
El directorio raíz predeterminado del servidor Nginx es /usr/share/nginx . Esto se especifica en el archivo de configuración de bloqueo del servidor predeterminado, ubicado en /etc/nginx/conf.d/default.conf .
El directorio raíz de documentos del servidor predeterminado que contiene archivos web es usr/share/nginx/html .
Configuración global
Las configuraciones globales se pueden ajustar modificando el archivo de configuración principal de Nginx ubicado en /etc/nginx/nginx.conf . Este archivo de configuración se divide en contextos. De forma predeterminada, puede identificar tres (3) contextos.
- Eventos son configuraciones globales que definen cómo Nginx maneja las conexiones en general.
HTTP define cómo el servidor maneja las conexiones HTTP y HTTPS.- Servidor se define dentro del contexto HTTP. Especifica los puertos del servidor, la raíz del documento, etc.
Siempre puede agregar contextos adicionales.
Administración de Nginx:tareas comunes
Detener Nginx
Para detener un servidor Nginx, ejecute:
sudo systemctl stop nginx
Reiniciar Nginx
Para reiniciar el servicio Nginx, ejecute:
sudo systemctl restart nginx
Recargar Nginx
Si realizó algunas modificaciones en los cambios de configuración principal de Nginx. Debe volver a cargar el servidor para propagar los cambios.
sudo systemctl reload nginx
Desactivar inicio automático al arrancar
Si no desea que Nginx se inicie automáticamente al arrancar, ejecute:
sudo systemctl disable nginx
Configuración de un nuevo directorio
Si aloja varios sitios web, una buena regla general es seguir las convenciones de nomenclatura estándar. Usemos el nombre estándar de cPanel y creemos un directorio.
sudo mkdir -p /var/www/yourdomain.com/public_html
Lo siguiente que necesita es una página de índice. Esto le ayudará a probar la configuración.
sudo nano /var/www/yourdomain.com/public_html/index.html
Para fines de prueba, ingrese una sola línea de texto en index.html. Guarde y cierre el archivo.
Cambie los permisos de archivo de Linux para poder acceder a los datos en línea.
sudo chmod 755 /var/www/yourdomain.com/public_html
Intente abrir la página index.html. Debería estar disponible en línea.