Cómo instalar Nginx y configurar en CentOS 8

Cómo instalar Nginx y configurar en CentOS 8
Nginx es un servidor web rápido y liviano. Los archivos de configuración de Nginx son realmente simples y fáciles de trabajar con. Es una gran alternativa al servidor web Apache. En este artículo, le mostraré cómo instalar y configurar el servidor web Nginx en CentOS 8. Entonces empecemos.

Instalación de Nginx:

Nginx está disponible en el repositorio oficial de paquetes de Centos 8. Entonces, es muy fácil de instalar.

Primero, actualice el caché del repositorio del paquete DNF de la siguiente manera:

$ sudo dnf makecache

Ahora, instale Nginx con el siguiente comando:

$ sudo dnf install nginx

Para confirmar la instalación, presione Y y luego presiona .

Nginx debe instalarse.

Administración del servicio NGINX:

Por defecto, nginx el servicio debe ser inactivo (no correr) y desactivado (no comenzará automáticamente en el arranque).

$ sudo systemctl status nginx

Puedes comenzar el nginx Servicio de la siguiente manera:

$ sudo systemctl inicio nginx

nginx el servicio debe ser correr.

$ sudo systemctl status nginx

Ahora, agregue nginx Servicio al inicio del sistema de la siguiente manera:

$ sudo SystemCTL Habilitar Nginx

Configuración del firewall:

Debe configurar el firewall para permitir el acceso al puerto HTTP 80 y el puerto HTTPS 443 para acceder al servidor web NGINX desde otras computadoras en la red.

Puede permitir el acceso al puerto HTTP y HTTPS con el siguiente comando:

$ sudo firewall-cmd --add-service = http, https --Permanent

Ahora, para que los cambios entren en vigencia, ejecute el siguiente comando:

$ sudo firewall-cmd--Reload

Prueba del servidor web:

Debe conocer la dirección IP o el nombre de dominio del servidor web NGINX para acceder a ella.

Puede encontrar la dirección IP de su servidor web NGINX con el siguiente comando:

$ ip a

En mi caso, la dirección IP es 192.168.20.175. Será diferente para ti. Entonces, asegúrese de reemplazarlo con el tuyo de ahora en adelante.

Ahora, visite http: // 192.168.20.175 de su navegador web. Deberías ver la siguiente página. Significa que el servidor web nginx está funcionando.

Archivos de configuración de Nginx:

Los archivos de configuración del servidor web nginx están en el /etc/nginx/ directorio.

$ árbol /etc /nginx

/etc/nginx/nginx.confusión es el archivo de configuración NGINX principal.

El directorio raíz web predeterminado del servidor web NGINX es /usr/share/nginx/html/. Entonces, aquí es donde debe mantener los archivos de su sitio web.

Configuración de un servidor web básico:

En esta sección, le mostraré cómo configurar un servidor web básico de Nginx.

Primero, tome una copia de seguridad del archivo de configuración NGINX original con el siguiente comando:

$ sudo mv -v/etc/nginx/nginx.conf/etc/nginx/nginx.confusión.original

Ahora, cree un nuevo archivo de configuración de Nginx de la siguiente manera:

$ sudo nano/etc/nginx/nginx.confusión

Ahora, escriba las siguientes líneas en el /etc/nginx/nginx.confusión archivo y guarda el archivo.

usuario nginx nginx;
Worker_processes Auto;
error_log/var/log/nginx/error.registro;
pid /run /nginx.pid;
eventos
Worker_Connections 1024;

http
incluir/etc/nginx/mime.tipos;
APLICACIÓN DE LA APLICACIÓN/OCTETA DEFORT_TYPE;
servidor
Escucha 80;
Ejemplo de server_name.com www.ejemplo.com;
root/usr/share/nginx/html;
índice índice.html;
access_log/var/log/nginx/access.registro;

Aquí, usuario La opción se usa para establecer el usuario y el grupo NGINX Ejecutar en nginx respectivamente.

El registro de errores La opción se usa para establecer la ruta del archivo de registro de errores a /var/log/nginx/error.registro. Aquí es donde se almacenarán errores relacionados con el servidor NGINX.

La configuración principal del servidor NGINX se define en el servidor sección dentro del http sección. Puedes definir más de uno servidor sección dentro del http Sección si es necesario.

En el servidor sección,

escuchar La opción se utiliza para configurar NGINX para escuchar el puerto 80 (puerto HTTP) para solicitudes web.

nombre del servidor La opción se usa para establecer uno o más nombres de dominio para el servidor web NGINX. Si su configuración de DNS es correcta, puede acceder al servidor web Nginx utilizando estos nombres de dominio.

access_log se usa para establecer la ruta del archivo de registro de acceso a /var/log/nginx/access.registro. Cuando alguien intenta acceder al servidor web NGINX, la información de acceso (i.mi. Dirección IP, URL, código de estado HTTP) se registrará a este archivo.

El ubicación La opción se usa para establecer el directorio raíz del servidor web NGINX.

Aquí el raíz el directorio es /usr/share/nginx/html/.

Aquí es donde se deben mantener todos los archivos del sitio web. El índice Conjuntos de opciones índice.html Como el archivo predeterminado para servir si no se solicita ningún archivo específico. Por ejemplo, si visita http: // 192.168.20.175/myfile.html, entonces tu nginx regresará mi archivo.html archivo. Pero, si visita http: // 192.168.20.175/, entonces Nginx le enviará índice.El archivo HTML ya no se solicitó ningún archivo específico.

Ahora, elimine todos los archivos del /usr/share/nginx/html/ directorio (raíz web) de la siguiente manera:

$ sudo rm -rfv/usr/share/nginx/html/*

Ahora, crea un nuevo índice.html archivo en el /usr/share/nginx/html/ Directorio de la siguiente manera:

Ahora, escriba las siguientes líneas en índice.html archivo y guarda el archivo.

Hola Mundo


© 2020 Linuxhint.comunicarse

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, visite http: // 192.168.20.175 de su navegador web y debería ver la siguiente página. Felicitaciones! Ha configurado su primer servidor web NGINX.

Configuración de páginas de error:

Puede configurar páginas de error en nginx. Por ejemplo, si una página/archivo/directorio no está disponible, el código de estado HTTP 404 se devolverá al navegador. Puede establecer una página de error HTML personalizada para el código de estado HTTP 404 que se devolverá al navegador.

Para hacer eso, agregue la siguiente línea en el servidor Sección de nginx.confusión archivo.

servidor

Error_page 404 /404.html;

Ahora, crea un archivo 404.html En la raíz web de Nginx /usr/share/nginx/html/ como sigue:

$ sudo nano/usr/share/nginx/html/404.html

Ahora, escriba las siguientes líneas en 404.html y guarda el archivo.

error 404


Página no encontrada


© 2020 Linuxhint.comunicarse

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, intente acceder a una ruta inexistente (http: // 192.168.20.175/nopage.html) y debería ver la siguiente página de error.

Si el 404.html El archivo está en una ruta del sistema de archivos diferente (digamos /usr/share/nginx/html/errores/ directorio), puede mapear la URL /404.html a él de la siguiente manera:

servidor

Error_page 404 /404.html;
Ubicación /404.html
root/usr/share/nginx/html/errores;


Ahora, haz un nuevo directorio /usr/share/nginx/html/errores/ como sigue:

$ sudo mkdir/usr/share/nginx/html/errores

Ahora, crea un nuevo archivo 404.html en el directorio /usr/share/nginx/html/errores/ como sigue:

$ sudo nano/usr/share/nginx/html/errores/404.html

Ahora, escriba las siguientes líneas en el 404.html archivo y guarda el archivo.

PÁGINA NO ENCONTRADA


REGRESAR A CASA

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, intente acceder a una ruta inexistente (http: // 192.168.20.175/nopage.html) y debería ver la página de error actualizado.

De la misma manera, puede establecer la página de error para otros códigos de estado HTTP.

También puede establecer la misma página de error para múltiples códigos de estado HTTP. Por ejemplo, para establecer la misma página de error /404.html Para los códigos de estado HTTP 403 y 404, escribe el error_page Opción de la siguiente manera:

Error_page 403 404 /404.html;

Configuración de registros:

En nginx, el registro de errores y access_log Las opciones se utilizan para registrar mensajes de error e información de acceso.

El formato de la registro de errores y access_log Las opciones son:

ERROR_LOG/PATH/TO/ERROR/LOG/FILE [Opcional: Custom-Log-Name];
access_log/path/to/access/log/file [Opcional: Custom-Log-Name];

Puede definir su propio registro de errores y formatos de registro de acceso si lo desea.

Para hacer eso, use el Log_format opción en el http Sección para definir su formato de registro personalizado de la siguiente manera.

http

log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';

servidor

access_log/var/log/nginx/access.registro simple;


Aquí, el nombre del formato de registro es simple. Algunas variables Nginx se utilizan para definir el formato de registro personalizado. Visite el manual de variables incrustadas de Nginx para aprender sobre todas las variables Nginx.

El formato de registro personalizado debe estar encerrado en cotizaciones individuales. El formato de registro se puede definir en una sola línea o en varias líneas. He mostrado cómo definir el formato de registro en múltiples líneas en este artículo. No tendrá ningún problema con el formato de registro de una sola línea, créeme!

Una vez que el formato de registro simple se define, access_log La opción se usa para decirle a Nginx que lo use como registro de acceso.

De la misma manera, puede establecer un formato de registro de errores personalizado utilizando el registro de errores opción.

Solo he configurado el formato de registro personalizado para el registro de acceso en este artículo.

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, puede monitorear el archivo de registro de acceso de la siguiente manera:

$ sudo cola -f/var/log/nginx/access.registro

También puede monitorear el archivo de registro de errores de la siguiente manera:

$ sudo cola -f/var/log/nginx/error.registro

Si lo desea, puede monitorear los archivos de registro de registro de acceso y error al mismo tiempo que el siguiente:

$ sudo cola -f/var/log/nginx/error, acceso.registro

Como puede ver, se está utilizando el nuevo formato de registro de acceso.

Negar el acceso a ciertos caminos:

Puede usar expresiones regulares para que coincida con ciertas rutas de URI y negar el acceso a ellas en Nginx.

Digamos que su sitio web es administrado por Git, y desea negar el acceso al .git/ Directorio en su raíz web.

Para hacer eso, escriba las siguientes líneas en el servidor Sección de /etc/nging/nginx.confusión archivo:

servidor

Ubicación ~ \.git
negar todo;


Como puede ver, el acceso a cualquier ruta que contenga .git es denegado.

Configuración de la compresión:

Puede comprimir el contenido web antes de enviarlos al navegador usando gzip Para guardar el uso de ancho de banda del servidor web NGINX.

Tengo algunas imágenes JPEG en el /usr/share/nginx/html/imágenes/ directorio.

Puedo acceder a estas imágenes usando la ruta URI /Imágenes.

Para habilitar la compresión de GZIP solo para las imágenes JPEG en la ruta URI /Imágenes, Escriba las siguientes líneas en el servidor Sección de /etc/nginx/nginx.confusión archivo.

servidor

Ubicación /imágenes
gzip on;
GZIP_COMP_LEVEL 9;
gzip_min_length 100000;
gzip_types imagen/jpeg;


Aquí, gzip_comp_level se usa para establecer el nivel de compresión. Puede ser cualquier número de 1 a 9. Cuanto mayor sea el nivel, menor será el archivo comprimido.

El archivo solo se comprimirá si el tamaño del archivo está arriba gzip_min_length. Lo he establecido en unos 100 kb en este ejemplo. Entonces, los archivos JPEG más pequeños de 100 kb no se comprimirán GZIP.

El gzip_types se usa para establecer el tipo mime de los archivos que se comprimirán.

Puede encontrar el tipo de MIME de las extensiones de archivo de la siguiente manera:

$ GREP JPG/ETC/NGINX/MIME.tipos

Como puede ver, para .JPG o .jpeg Extensión del archivo, el tipo MIME es Imagen/jpeg.

Puede establecer uno o más tipos de MIME usando gzip_types opción.

Si desea establecer múltiples tipos de MIME, asegúrese de separarlos con espacios de la siguiente manera:

"
GZIP_TYPES Image/JPEG Image/PNG Image/Gif;

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Como puede ver, Nginx envía archivos de imagen comprimidos GZIP al navegador cuando se solicite.

Como puede ver en la captura de pantalla a continuación, el archivo comprimido GZIP es más pequeño que el archivo original.

$ sudo cola -f/var/log/nginx/access.registro

Habilitando https:

Puede habilitar SSL en Nginx muy fácilmente. En esta sección, le mostraré cómo establecer el certificado SSL autofirmado en Nginx.

Primero, navegue al /etc/ssl/ Directorio de la siguiente manera:

$ cd /etc /ssl

Ahora, genere una tecla SSL servidor.llave y certificado servidor.CRT Con el siguiente comando:

$ sudo openssl req -x509 -nodes -days 365 -newkey RSA: 2048 -Keyout
servidor.Key -Out servidor.CRT

NOTA: Debes tener openssl instalado para que esto funcione. Si el comando OpenSSL no está disponible, instale openssl Con el siguiente comando:

$ sudo dnf install openssl -y

Ahora, escriba su código de país de 2 letras (i.mi. EE. UU. Para Estados Unidos, Reino Unido para Reino Unido, RU para Rusia, CN para China) y prensa .

Ahora, escriba el nombre de su estado/provincia y presione .

Ahora, escriba el nombre de su ciudad y presione .

Ahora, escriba el nombre de su empresa y presione .

Ahora, escriba el nombre de la unidad organizacional de su empresa que usará este certificado y presione .

Ahora, escriba el nombre de dominio totalmente calificado (FQDN) de su servidor web NGINX y presione . El certificado SSL será válido solo si se accede al servidor web NGINX utilizando este nombre de dominio.

Ahora, escriba su dirección de correo electrónico y presione .

Su certificado SSL debe estar listo.

El certificado y la clave SSL deben generarse en el /etc/ssl/ directorio.

$ ls -lh

Ahora, abra el archivo de configuración de Nginx /etc/nginx/nginx.confusión y cambio escuchar puerto a 443 y escriba las siguientes líneas en el servidor sección.

servidor

ssl on;
ssl_certificate/etc/ssl/servidor.CRT;
ssl_certificate_key/etc/ssl/servidor.llave;

Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

En la vida real, tendrás una configuración DNS correcta. Pero para fines de prueba, he configurado el nombre de dominio local basado en archivos en la computadora que he usado para acceder al servidor web NGINX desde.

Si quieres seguir, abre el /etc/huéspedes Archivo de la siguiente manera:

$ sudo nano /etc /anfitriones

Luego, agregue la siguiente línea al /etc/huéspedes archivo.

192.168.20.175 www.ejemplo.comunicarse

Ahora, intente visitar https: // www.ejemplo.com y deberías ver la siguiente página. Ya verás Su conexión no es segura mensaje porque es un certificado autofirmado. Esto es bueno solo para el propósito de prueba.

En la vida real, comprará certificados SSL de las autoridades de certificado (CAS) y los usará. Entonces, no verá este tipo de mensaje.

Como puede ver, Nginx sirvió la página web a través de HTTPS. Entonces, SSL funciona.

La información SSL de www.ejemplo.comunicarse.

Redirigir las solicitudes HTTP a HTTPS:

Si alguien visita su sitio web sobre el protocolo HTTP (http: // www.ejemplo.com o http: // 192.168.20.175) en lugar de https (https: // www.ejemplo.com), no desea rechazar la solicitud HTTP. Si haces eso, perderás un visitante. Lo que realmente debe hacer es redirigir al usuario al sitio habilitado para SSL. Es realmente simple de hacer.

Primero, abra el archivo de configuración de Nginx /etc/nginx/nginx.confusión y crear un nuevo servidor sección dentro del http Sección de la siguiente manera:

http

servidor
Escucha 80;
server_name www.ejemplo.com;
devolver 301 https: // www.ejemplo.com $ request_uri;


Esta es la final /etc/nginx/nginx.confusión archivo:

usuario nginx nginx;
Worker_processes Auto;
error_log/var/log/nginx/error.registro;
pid /run /nginx.pid;
eventos
Worker_Connections 1024;

http
incluir/etc/nginx/mime.tipos;
APLICACIÓN DE LA APLICACIÓN/OCTETA DEFORT_TYPE;
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ status] ($ request_time) -> $ bytes_sent bytes';
servidor
Escucha 80;
server_name www.ejemplo.com;
devolver 301 https: // www.ejemplo.com $ request_uri;

servidor
escucha 443;
server_name www.ejemplo.com;
ssl on;
ssl_certificate/etc/ssl/servidor.CRT;
ssl_certificate_key/etc/ssl/servidor.llave;
access_log/var/log/nginx/access.registro simple;
ubicación /
root/usr/share/nginx/html;
índice índice.html;

Ubicación /imágenes
gzip on;
GZIP_COMP_LEVEL 9;
gzip_min_length 100000;
gzip_types imagen/jpeg;

Error_page 404 /404.html;
Ubicación /404.html
root/usr/share/nginx/html/errores;

Ubicación ~ \.git
negar todo;


Ahora, reinicie nginx Servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, si intenta acceder a http: // 192.168.20.175 o http: // www.ejemplo.com, serás redirigido a https: // www.ejemplo.comunicarse.

Entonces, así es como instala y configura el servidor web Nginx en CentOS 8. Gracias por leer este artículo.