Introducción
Nginx es un servidor proxy inverso y HTTP gratuito, de código abierto y de alto rendimiento responsable de administrar la carga de algunos de los sitios más grandes de Internet.
Nginx se puede utilizar como servidor web independiente y como proxy inverso para Apache y otros servidores web.
Comparado con Apache, Nginx puede manejar una gran cantidad de conexiones concurrentes y tiene una menor huella de memoria por conexión.
Este tutorial le enseñará cómo instalar y administrar Nginx en su computadora CentOS 8.
Prerrequisitos
Antes de comenzar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y que no tiene Apache u otros servicios ejecutándose en el puerto 80 o 443.
Si desea instalar Nginx en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita conocer la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root, escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña del usuario root.
Si no está utilizando el usuario root, puede iniciar sesión con otro nombre de usuario utilizando el mismo comando, luego cambie root a su nombre de usuario:
ssh nome_utente@IP_DEL_SERVER
Luego se le pedirá que ingrese su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22, si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p, luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Instalar Nginx en CentOS
Siga los pasos a continuación para instalar Nginx en el servidor CentOS:
Los paquetes Nginx están disponibles en los repositorios de EPEL. Si aún no ha instalado el repositorio EPEL puede hacerlo escribiendo:
sudo dnf install epel-release
Instale Nginx escribiendo el siguiente comando yum:
sudo dnf install nginx
Si es la primera vez que instala un paquete del repositorio EPEL, dnf puede solicitarle que importe la clave EPEL GPG. La salida podría verse así:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Importing GPG key 0x352C64E5:
Userid: "Fedora EPEL (7) "
Fingerprint: 91e9 7d7c 4a5e 96f1 7f3e 888f 6a2f aea2 352c 64e5
Package: epel-release-7-9.noarch (@extras)
From: /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
Is this ok [y/N]:
Si es así, escriba y
y presione Enter
.
Una vez que se complete la instalación, habilite e inicie el servicio Nginx con:
sudo systemctl enable nginx
sudo systemctl start nginx
Verifique el estado del servicio Nginx con el siguiente comando:
sudo systemctl status nginx
La salida debería verse así:
● nginx.service - The nginx HTTP and reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-01-15 23:03:11 CET; 3min 54s ago
Process: 8143 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
Process: 8141 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
Process: 8140 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
Main PID: 8145 (nginx)
Tasks: 2 (limit: 12251)
Memory: 3.9M
CGroup: /system.slice/nginx.service
├─8145 nginx: master process /usr/sbin/nginx
└─8146 nginx: worker process
Si su servidor está protegido por un firewall, debe abrir los 80
) y HTTPS ( 443
).
Utilice los siguientes comandos para abrir los puertos necesarios:
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Para verificar la instalación de Nginx, abra el navegador de su http://DOMINIO_O_INDIRIZZO_IP
y verá la página de bienvenida predeterminada de Nginx.
Administra el servicio Nginx con systemctl
Puede administrar el servicio Nginx como cualquier otra unidad del sistema.
Para detener el servicio Nginx, ejecute:
sudo systemctl stop nginx
Para comenzar de nuevo, escriba:
sudo systemctl start nginx
Para reiniciar el servicio Nginx:
sudo systemctl restart nginx
Vuelva a cargar el servicio Nginx después de realizar algunos cambios de configuración:
sudo systemctl reload nginx
Si desea deshabilitar el servicio Nginx para que se inicie al inicio:
sudo systemctl disable nginx
Y para reactivarlo de nuevo:
sudo systemctl enable nginx
Estructura de archivos de configuración de Nginx y mejores prácticas
- Todos los archivos de configuración de Nginx se encuentran en el
/etc/nginx/
. - El archivo de configuración principal de Nginx es
/etc/nginx/nginx.conf
. - Para facilitar el mantenimiento de la configuración de Nginx, se recomienda crear un archivo de configuración separado para cada dominio.
- Los nuevos archivos de bloqueo del servidor Nginx deben terminar
.conf
y almacenarse en el directorio/etc/nginx/conf.d
Puede tener todos los bloques de servidor que necesite. - Es una buena idea seguir una convención de nomenclatura estándar, por ejemplo, si su nombre de dominio es
mydomain.com
su archivo de configuración debe llamarse/etc/nginx/conf.d/mydomain.com.conf
- Si está utilizando segmentos de configuración repetibles en bloques de servidor de dominio, se recomienda que cree un directorio llamado
/etc/nginx/snippets
refactorice esos segmentos en fragmentos e incluya el archivo de fragmentos en los bloques del servidor. - Los archivos de registro de Nginx (
access.log
yerror.log
) se encuentran en el/var/log/nginx/
. Se recomienda que tenga diferenteserror
yaccess
para cada bloque de servidor. - Puede establecer la raíz del documento de dominio en cualquier ubicación que desee. Las ubicaciones más comunes para webroots incluyen:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
/usr/share/nginx/html
Conclusión
Felicitaciones, ha instalado con éxito Nginx en su servidor CentOS 8. Ahora está listo para comenzar a distribuir sus aplicaciones y usar Nginx como servidor web o proxy.
Un certificado seguro es una característica "imprescindible" para todos los sitios web hoy en día. Para proteger su sitio web con un certificado SSL Let's Encrypt gratuito, puede consultar nuestro tutorial sobre cómo proteger Nginx con Let's Encrypt en CentOS 8.