Nginx pronunciado engine x
es un servidor proxy inverso y HTTP gratuito, de código abierto y de alto rendimiento responsable de manejar 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.
En comparación con Apache, Nginx puede manejar una gran cantidad de conexiones simultáneas y tiene una huella de memoria más pequeña por conexión.
Este tutorial le enseñará cómo instalar y administrar Nginx en su máquina CentOS 7.
Requisitos previos #
Antes de comenzar con el tutorial, asegúrese de haber iniciado sesión como usuario con privilegios de sudo y no tener Apache ni ningún otro servicio ejecutándose en el puerto 80 o 443.
Instalando Nginx en CentOS #
Siga los pasos a continuación para instalar Nginx en su servidor CentOS:
-
Los paquetes de Nginx están disponibles en los repositorios de EPEL. Si aún no tiene el repositorio EPEL instalado, puede hacerlo escribiendo:
sudo yum install epel-release
-
Instale Nginx escribiendo el siguiente comando yum:
sudo yum install nginx
Si es la primera vez que instala un paquete desde el repositorio de EPEL, yum puede solicitarle que importe la clave EPEL GPG:
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 Importing GPG key 0x352C64E5: Userid : "Fedora EPEL (7) <[email protected]>" 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 ese es el caso, escriba
y
y pulsaEnter
. -
Una vez completada 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 Mon 2018-03-12 16:12:48 UTC; 2s ago Process: 1677 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 1675 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 1673 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 1680 (nginx) CGroup: /system.slice/nginx.service ├─1680 nginx: master process /usr/sbin/nginx └─1681 nginx: worker process
-
Si su servidor está protegido por un firewall, debe abrir tanto HTTP (
80
) y HTTPS (443
) puertos.Use 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 su instalación de Nginx, abra
http://YOUR_IP
en el navegador de su elección y verá la página de bienvenida predeterminada de Nginx como se muestra en la siguiente imagen:
Administrar el servicio Nginx con systemctl #
Puede administrar el servicio Nginx de la misma manera que cualquier otra unidad systemd.
Para detener el servicio Nginx, ejecute:
sudo systemctl stop nginx
Para iniciarlo 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 haber realizado algunos cambios de configuración:
sudo systemctl reload nginx
Si desea deshabilitar el servicio Nginx para que comience en el arranque:
sudo systemctl disable nginx
Y para volver a habilitarlo de nuevo:
sudo systemctl enable nginx
Estructura y mejores prácticas del archivo de configuración de Nginx #
- Todos los archivos de configuración de Nginx se encuentran en
/etc/nginx/
directorio. - 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 independiente para cada dominio.
- Los nuevos archivos de bloque del servidor Nginx deben terminar con
.conf
y ser almacenado en/etc/nginx/conf.d
directorio. Puede tener tantos bloques de servidor como necesite. - Es una buena idea seguir una convención de nomenclatura estándar, por ejemplo, si su nombre de dominio es
mydomain.com
entonces su archivo de configuración debe llamarse/etc/nginx/conf.d/mydomain.com.conf
- Si usa segmentos de configuración repetibles en los bloques de servidor de sus dominios, es una buena idea crear un directorio llamado
/etc/nginx/snippets
refactorizar esos segmentos en fragmentos e incluir el archivo de fragmento en los bloques del servidor. - Archivos de registro de Nginx (
access.log
yerror.log
) se encuentran en el/var/log/nginx/
directorio. Se recomienda tener unaccess
diferente yerror
archivos de registro para cada bloque de servidor. - Puede establecer el directorio raíz de documentos de su dominio en cualquier ubicación que desee. Las ubicaciones más comunes para webroot incluyen:
/home/<user_name>/<site_name>
/var/www/<site_name>
/var/www/html/<site_name>
/opt/<site_name>
/usr/share/nginx/html