¿Qué es un servidor Web?
Cada vez que abra su navegador, escriba una URL y luego haga clic en Intro. Básicamente, estás solicitando el contenido de esa URL. ¿Alguna vez te has preguntado dónde está el contenido? Sí, tienes razón, son contenidos colocados en equipos remotos que, después de aceptar tu solicitud, envían el contenido de esa URL como respuesta.
Los servidores web son computadoras que entregan las páginas web solicitadas. Cada servidor web tiene una dirección IP y un nombre de dominio.
Entendamos los servidores web como un ejemplo.
Abres tu navegador favorito y escribes www.geeksforgeeks.org/c-plus-plus y haces clic en enter para ver los recursos en C++. En la URL anterior, www.geeksforgeeks.org es el nombre de dominio y /c-plus-plus es la página que desea ver.
Entonces, www.geeksforgeeks.org enrutará su solicitud al servidor web y éste, a su vez, verá el sistema de archivos que está solicitando. En nuestro caso, es /c-plus-plus.
¿Qué es Nginx?
Es un software de código abierto diseñado para el máximo rendimiento y estabilidad. Veamos básicamente por qué lo necesitamos, básicamente veamos cómo podemos beneficiarnos de esto.
¿Por qué necesitamos un servidor web dedicado?
Supongamos que desarrollamos nuestra aplicación en Django o Node. Todos estos marcos tienen servidores de desarrollo incorporados para alojar su proyecto. Pero cada vez que alguien intente alojar esa aplicación en el nivel de producción con servidores de desarrollo integrados, tendrá dificultades para manejar todas las requests mientras experimenta tiempos de inactividad mientras solo maneja 30-40 requests simultáneas.
Nginx es un servidor web dedicado que ha resuelto problemas de eficiencia y nos ha brindado una forma óptima de manejar miles de requests al mismo tiempo.
Servidor web para proxy inverso, almacenamiento en caché y equilibrio de carga.
El proxy inverso acepta una solicitud de un cliente, reenvía la solicitud a un servidor que puede cumplirla y devuelve la respuesta del servidor al cliente.
El almacenamiento en caché es una técnica que almacena una copia de un recurso determinado y la devuelve cuando se solicita. Cuando un caché web tiene un recurso solicitado en su tienda, intercepta la solicitud y devuelve su copia en lugar de volver a descargarla desde el servidor de origen.
Un equilibrador de carga distribuye las requests de los clientes entrantes a un grupo de servidores, en el que puede manejar requests simultáneas sin experimentar carga en un servidor en particular.
Otras características de Nginx son las siguientes:
- Proporciona capacidades de servidor HTTP.
- Diseñado para proporcionar estabilidad y máximo rendimiento.
- Funciona como servidor proxy para correo electrónico (IMAP, POP3 y SMTP).
- Utiliza una arquitectura basada en eventos y sin subprocesos para proporcionar menos cómputo de CPU por solicitud atendida.
- Proporciona escalabilidad.
- Reduce el tiempo de espera del cliente.
- Las actualizaciones se pueden realizar mientras Nginx aloja un sitio web sin ningún tiempo de inactividad.
Espero que ahora esté convencido de por qué debemos usar un servidor web dedicado en nuestra aplicación de producción.
Arquitectura Nginx
Para comprender los ajustes de configuración adicionales de Nginx, necesitamos echar un vistazo a lo que Nginx entiende antes de eso.
Nginx usa la arquitectura Maestro-Esclavo, donde tenemos un maestro que redirige nuestra solicitud a cualquiera de los trabajadores que están debajo de él mediante la distribución de la carga en el servidor, luego se busca la caché del Proxy para una respuesta más rápida, de lo contrario, después de fallar en hacerlo, la página web se carga desde la propia memoria. Una demostración de imagen ayudará a comprender esta estructura con mayor claridad.
Algunos ajustes de configuración para Nginx
La configuración principal requerida para Nginx se almacena en un archivo llamado nginx.conf . Este archivo está estructurado principalmente en muchos contextos.
worker_processes : Un proceso de trabajo es básicamente el número de trabajadores que controlará un maestro. Para ser más precisos, es un proceso de un solo subproceso. Entonces, si tiene un procesador multinúcleo como 8 núcleos, puede configurar 8 procesos_trabajadores para utilizar completamente el ancho de banda del disco y ayudarlo a realizar el trabajo intensivo de la CPU.
worker_connections : Es el número de conexiones simultáneas con diferentes clientes. El valor predeterminado es 512 o 1024. Entonces, suponga que tiene 8 procesos_trabajadores y 512 conexiones_trabajadores, el máximo de clientes que puede atender es procesos_trabajadores * conexiones_trabajadores, es decir, 8*512 = 4096 conexiones.
access_log & error_log : De manera predeterminada, el servidor Nginx escribe sus eventos en 2 tipos de registros como se mencionó. Las actividades de todos los visitantes, la solicitud de datos del servidor se registran en access_log, puede encontrar a qué archivos se accedió y cómo respondió Nginx, la IP del cliente y mucho más. Pero si Nginx enfrenta problemas y fallas, registrará toda esta información en el registro de errores para una mayor depuración.
gzip : si desea aprovechar todo el rendimiento disponible, comprime todos los datos de respuesta. pero usa muchos recursos de CPU, lo que puede ralentizar su Nginx si usa esto en todos los elementos, así que mantenga esta opción en funcionamiento solo para elementos grandes.
¿Cómo instalar Nginx?
Los pasos a seguir son:
- Instalar Nginx
- Ajustar cortafuegos
- Revisa tu servidor
Linux (Ubuntu como distribuciones)
En primer lugar, abra la terminal en su distribución de Linux y luego escriba los siguientes comandos para instalar Nginx en su sistema.
# Update your system sudo apt-get update # After updating your system # Install nginx using CLI, press Y to allow it to install sudo apt-get install nginx # Enabling Firewall sudo ufw enable
Estos son algunos pasos para instalar Nginx y habilitar el firewall en Linux. Verifiquemos la versión y procedamos a iniciar el servidor.
# checking Nginx version nginx -v # if output is -> nginx version: nginx/1.xx.x (ubuntu) # you have successfully installed it
Ahora necesitamos agregar las reglas al firewall para que su servidor pueda recibir requests en los puertos Http y Https.
# This commands tells you all the configuration # that your firewall know which can be added sudo ufw app list # Here you'll see the output and from available options, # you shall see (Nginx Full, Nginx HTTP, Nginx HTTPS) # Let's add these rules to your firewall sudo ufw allow 'Nginx Full' sudo ufw allow 'Nginx HTTP' sudo ufw allow 'Nginx HTTPS'
Ahora necesitamos ver el estado de las reglas que agregamos al firewall.
# To check status sudo ufw status
Ahora comprobaremos si nuestro servidor está funcionando.
# To check the status of the server sudo systemctl status nginx
¡Felicidades! Si puede ver activo (en ejecución) debajo del encabezado Activo, significa que su servidor se está ejecutando.
Windows (7/8/10 o quizás 11)
Haga clic aquí para ir a la página de descarga de Nginx y descargar una versión principal (en mi caso, es nginx-1.21.1.zip ).
Descomprímalo donde desee, abra la carpeta y abra la aplicación Nginx, y permita que cambie la configuración y las reglas en el firewall.
¡Voila! Su servidor se está ejecutando y puede verificarlo yendo a este enlace en el navegador: http://localhost/
Ahora puede estar confundido acerca de dónde proviene esta página web (Bienvenido a Nginx) . Para eso, vayamos a la carpeta Conf en Nginx, descomprimamos la carpeta y usemos cualquier editor (o bloc de notas) para abrir el archivo nginx.conf.
Aquí puede ver los procesos_trabajadores, las conexiones_trabajadores y otros ajustes de configuración discutidos. Puede ir a HTTP -> servidor -> ubicación/ para obtener la ubicación de la página web o desde qué rutas se abrirá una página web. Aquí dice debajo del directorio raíz ( aquí es una carpeta descomprimida ) la carpeta HTML, la página index.html se está sirviendo como respuesta.
Por lo tanto, cada vez que haya iniciado el servidor Nginx y mientras accede a la URL del host local en un navegador, si ve Bienvenido a Nginx. Nuestro servidor está funcionando!!
Lea el siguiente artículo sobre cómo configurar nginx en el servidor remoto: enlace
Publicación traducida automáticamente
Artículo escrito por tewatia5355 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA