Nginx

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 ligero. Los archivos de configuración de Nginx son realmente simples y fáciles de trabajar. 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 la caché del repositorio de paquetes DNF de la siguiente manera:

$ sudo dnf makecache

Ahora, instale Nginx con el siguiente comando:

$ sudo dnf instalar nginx

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

Nginx debe estar instalado.

Gestión del servicio nginx:

Por defecto, nginx el servicio debe ser inactivo (no corriendo) y discapacitado (no se iniciará automáticamente al arrancar).

$ sudo systemctl estado nginx

Puedes iniciar el nginx servicio de la siguiente manera:

$ sudo systemctl iniciar nginx

nginx el servicio debe ser corriendo.

$ sudo systemctl estado nginx

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

$ sudo systemctl habilitar nginx

Configuración del cortafuegos:

Debe configurar el firewall para permitir el acceso al puerto HTTP 80 y al puerto HTTPS 443 para poder 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 surtan efecto, 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 poder acceder a él.

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. Por lo tanto, asegúrese de reemplazarlo por el suyo a partir de ahora.

Ahora, visite http: // 192.168.20.175 desde su navegador web. Debería 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.conf es el archivo de configuración principal de Nginx.

El directorio raíz web predeterminado del servidor web Nginx es / usr / share / nginx / html /. Entonces, aquí es donde debe guardar 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 Nginx básico.

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

$ sudo mv -v / etc / nginx / nginx.conf / etc / nginx / nginx.conf.original

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

$ sudo nano / etc / nginx / nginx.conf

Ahora, escriba las siguientes líneas en el / etc / nginx / nginx.conf archivo y guarde el archivo.

usuario nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.Iniciar sesión;
pid / ejecutar / nginx.pid;
 
eventos
conexiones_trabajador 1024;

 
http
incluir / etc / nginx / mime.tipos;
tipo_predeterminado application / octet-stream;
 
servidor
escucha 80;
ejemplo de nombre_servidor.com www.ejemplo.com;
root / usr / share / nginx / html;
índice de índice.html;
access_log / var / log / nginx / access.Iniciar sesión;

Aquí, usuario La opción se utiliza para configurar el usuario y el grupo de ejecución de Nginx en nginx respectivamente.

La registro de errores La opción se utiliza para establecer la ruta del archivo de registro de errores en / var / log / nginx / error.Iniciar sesión. Aquí es donde se almacenarán los errores relacionados con el servidor Nginx.

La configuración principal del servidor Nginx se define en el servidor sección dentro de la 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 usa para configurar Nginx para que escuche el puerto 80 (puerto HTTP) para solicitudes web.

nombre del servidor La opción se utiliza para configurar 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 usando estos nombres de dominio.

access_log se utiliza para establecer la ruta del archivo de registro de acceso a / var / log / nginx / access.Iniciar sesión. 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án en este archivo.

La localización La opción se usa para configurar el directorio raíz del servidor web Nginx.

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

Aquí es donde se deben guardar todos los archivos del sitio web. La índice conjuntos de opciones índice.html como el archivo predeterminado para servir si no se solicita un archivo específico. Por ejemplo, si visita http: // 192.168.20.175 / myfile.html, entonces Nginx volverá mi archivo.html expediente. Pero, si visita http: // 192.168.20.175 /, entonces Nginx le enviará un índice.html ya que 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 guarde el archivo.

Hola Mundo


© 2020 LinuxHint.com

Ahora reinicia nginx servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

Ahora, visite http: // 192.168.20.175 desde 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 configurar 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.conf expediente.

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.com

Ahora reinicia nginx servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

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

Si el 404.html el archivo está en una ruta de sistema de archivos diferente (digamos / usr / share / nginx / html / errors / directorio), puede asignar 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 / errors;

..

Ahora, crea un nuevo directorio  / usr / share / nginx / html / errors / como sigue:

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

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

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

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

PÁGINA NO ENCONTRADA


REGRESAR A CASA

Ahora reinicia nginx servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

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

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

También puede configurar la misma página de error para varios códigos de estado HTTP. Por ejemplo, para configurar 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 del registro de errores y access_log las opciones son:

error_log / ruta / a / error / log / file [opcional: nombre-registro-personalizado];
registro_acceso / ruta / a / acceso / registro / archivo [opcional: nombre-registro-personalizado];

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'
'[$ estado] ($ request_time) -> $ bytes_sent bytes';
..
servidor
..
access_log / var / log / nginx / access.registro simple;
..

Aquí, el nombre del formato de registro es sencillo. Algunas variables nginx se utilizan para definir el formato de registro personalizado. Visite el Manual de variables integradas de Nginx para conocer todas las variables de Nginx.

El formato de registro personalizado debe incluirse entre comillas simples. 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 varias líneas en este artículo. No tendrá ningún problema con el formato de registro de una sola línea, créame!

Una vez que el formato de registro sencillo se define, access_log La opción se usa para decirle a Nginx que la 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 configuré un formato de registro personalizado para el registro de acceso en este artículo.

Ahora reinicia nginx servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

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

$ sudo tail -f / var / log / nginx / access.Iniciar sesión

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

$ sudo tail -f / var / log / nginx / error.Iniciar sesión

Si lo desea, puede supervisar el registro de acceso y los archivos de registro de errores al mismo tiempo de la siguiente manera:

$ sudo tail -f / var / log / nginx / error, acceso.Iniciar sesión

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

Negar el acceso a ciertas rutas:

Puede usar expresiones regulares para hacer coincidir ciertas rutas de URI y denegar el acceso a ellas en Nginx.

Digamos que su sitio web está administrado por Git y desea denegar el acceso a la .git / directorio en la raíz de tu web.

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

servidor
..
ubicación ~ \.git
negar todo;

..

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

Configuración de la compresión:

Puede comprimir los contenidos web antes de enviarlos al navegador usando gzip para ahorrar uso de ancho de banda del servidor web Nginx.

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

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

Para habilitar la compresión 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.conf expediente.

servidor
..
ubicación / imágenes
gzip encendido;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

..

Aquí, gzip_comp_level se utiliza para establecer el nivel de compresión. Puede ser cualquier número del 1 al 9. Cuanto mayor sea el nivel, más pequeño será el archivo comprimido.

El archivo solo se comprimirá si el tamaño del archivo es superior gzip_min_length. Lo configuré en aproximadamente 100 KB en este ejemplo. Por lo tanto, los archivos JPEG de menos de 100 KB no se comprimirán con gzip.

La  gzip_types se utiliza para establecer el tipo de mímica de los archivos que se comprimirán.

Puede encontrar el tipo de mímica en las extensiones de archivo de la siguiente manera:

$ grep jpg / etc / nginx / mime.tipos

Como puede ver, por .jpg o .jpeg extensión de archivo, el tipo de mime es imagen / jpeg.

Puede configurar uno o más tipos de mímica usando gzip_types opción.

Si desea establecer varios tipos de mime, asegúrese de separarlos con espacios de la siguiente manera:

"
gzip_types image / imagen jpeg / imagen png / gif;

Ahora reinicia 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 solicita.

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 tail -f / var / log / nginx / access.Iniciar sesión

Habilitando HTTPS:

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

Primero, navegue hasta el / etc / ssl / directorio de la siguiente manera:

$ cd / etc / ssl

Ahora, genere una clave SSL servidor.clave y certificado servidor.crt con el siguiente comando:

$ sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout
servidor.servidor de salida de clave.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 instalar openssl -y

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

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 organizativa de su empresa que utilizará este certificado y presione .

Ahora, escriba el nombre de dominio completo (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 debería estar listo.

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

$ ls -lh

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

servidor
..
ssl encendido;
certificado_ssl / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.clave;
..

Ahora reinicia nginx servicio de la siguiente manera:

$ sudo systemctl reiniciar nginx

En la vida real, tendrá la configuración correcta de DNS. Pero para fines de prueba, configuré el nombre de dominio local basado en archivos en la computadora que usé para acceder al servidor web Nginx desde.

Si desea seguirlo, abra el / etc / hosts archivo de la siguiente manera:

$ sudo nano / etc / hosts

Luego, agregue la siguiente línea al / etc / hosts expediente.

192.168.20.175 www.ejemplo.com

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

En la vida real, comprará certificados SSL de las autoridades de certificación (CA) y los utilizará. Entonces, no verá este tipo de mensaje.

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

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

Redirigir solicitudes HTTP a HTTPS:

Si alguien visita su sitio web a través del 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.conf y crea un nuevo servidor sección dentro del http sección de la siguiente manera:

http
..
servidor
escucha 80;
nombre_servidor www.ejemplo.com;
volver 301 https: // www.ejemplo.com $ request_uri;

..

Esta es la final / etc / nginx / nginx.conf expediente:

usuario nginx nginx;
worker_processes auto;
error_log / var / log / nginx / error.Iniciar sesión;
pid / ejecutar / nginx.pid;
eventos
conexiones_trabajador 1024;

http
incluir / etc / nginx / mime.tipos;
tipo_predeterminado application / octet-stream;
log_format simple '[$ time_iso8601] $ request_method $ request_uri'
'[$ estado] ($ request_time) -> $ bytes_sent bytes';
 
servidor
escucha 80;
nombre_servidor www.ejemplo.com;
volver 301 https: // www.ejemplo.com $ request_uri;

servidor
escuchar 443;
nombre_servidor www.ejemplo.com;
ssl encendido;
certificado_ssl / etc / ssl / server.crt;
ssl_certificate_key / etc / ssl / server.clave;
access_log / var / log / nginx / access.registro simple;
localización /
root / usr / share / nginx / html;
índice de índice.html;

ubicación / imágenes
gzip encendido;
gzip_comp_level 9;
gzip_min_length 100000;
gzip_types image / jpeg;

error_page 404/404.html;
ubicación / 404.html
root / usr / share / nginx / html / errors;

ubicación ~ \.git
negar todo;


Ahora reinicia 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á redirigido a https: // www.ejemplo.com.

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

Motores de juegos gratuitos y de código abierto para desarrollar juegos de Linux
Este artículo cubrirá una lista de motores de juegos de código abierto y gratuitos que se pueden usar para desarrollar juegos 2D y 3D en Linux. Existe...
Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...