Tabla de contenidos
Durante mucho tiempo, Apache fue el servidor web de Internet con una participación de mercado de hasta el 70 por ciento. Solo Microsoft IIS fue un competidor notable con alrededor del 20 por ciento, ya que es el estándar para el sistema operativo Windows Server. Las grandes plataformas, en particular, dependen del software de código abierto de Nginx, ya que tiene muchas ventajas.
Te recomendamos leer: ¿Qué es un hackathon?
Servidores web, bases de datos, lenguajes de programación, protocolos e intérpretes
Hoy en día, un sitio web casi siempre se programa de forma dinámica. Esto significa que, en el caso de una solicitud, varios programas crean una respuesta individual en lugar de entregar un documento estático prefabricado. La información, por ejemplo, textos, enlaces, nombres de usuario o contraseñas, se almacena en una base de datos. Los scripts en un lenguaje de programación adecuado como PHP, Perl o Python los consultan y crean el sitio web.
El intérprete forma una interfaz entre el script y el sistema operativo: traduce los comandos escritos al lenguaje informático. El servidor web es responsable de la comunicación: recibe solicitudes y envía respuestas a las direcciones correspondientes.
Para permitir la comunicación entre el servidor y diferentes dispositivos finales y sistemas operativos, se utilizan protocolos universales como un lenguaje común. Para los sitios web, este es el hipertexto transferencia protocolo (HTTP) o su variante cifrada con la adición de seguro (HTTPS). Está especialmente diseñado para la transferencia de mensajes, para otros fines como transferencias de archivos existen formatos separados como el Protocolo de transferencia de archivos (FTP).
Nginx: un servidor web modular con bajo consumo de recursos
Nginx se caracteriza particularmente por su eficiencia y velocidad.
Para permitir un alto rendimiento y funcionalidad, Nginx utiliza un diseño modular. Consiste en un programa básico ajustado, que un usuario puede ampliar con módulos según los requisitos individuales. Como resultado, el servidor web admite diferentes tecnologías y permite la integración de nuevos estándares para la transmisión de video y contenido interactivo, por ejemplo. Algunas de las opciones son el equilibrio de carga en varios servidores, protocolos adicionales, acceso directo a la memoria principal o uso como servidor de correo electrónico o web para reenvío (proxy).
Uno de los módulos más populares e interesantes es PHP-FPM. Es un administrador de procesos que se encarga de la conexión con el intérprete de PHP. La comunicación entre el servidor web y el lenguaje de programación se basa en un estándar definido en 1993: Common Gateway Interface (CGI). Tradicionalmente, esto crea un nuevo proceso para cada tarea.
A diferencia de este procedimiento, PHP-FPM genera varios intérpretes en segundo plano cuando comienza a operar, a los que distribuye solicitudes en función de la carga de trabajo. En relación con otras optimizaciones, el módulo logra un excelente rendimiento.
Diferencias entre Apache y Nginx
A diferencia de Apache, Nginx ha priorizado la eficiencia y la velocidad desde su primera versión. Apache también usa un diseño modular, pero uno de sus principales inconvenientes es que maneja cada conexión individualmente. Como resultado, tiene un consumo de memoria muy alto y la eficiencia cae continuamente con un alto número de visitantes. Por este motivo, el programa se basa en la denominada «arquitectura asincrónica». No maneja las consultas de forma individual, sino que las agrupa en unos pocos procesos que pueden administrar miles de conexiones simultáneamente.
Una función de uso frecuente en Apache es los archivos .htaccess. Estos hacen posible definir reglas utilizando un archivo local que son evaluadas por el servidor web. Los usos comunes son establecer una contraseña para una dirección específica o redireccionar URL como parte de la optimización de motores de búsqueda (SEO). Nginx no es compatible con .htaccess, ya que afectan el rendimiento. En su lugar, utiliza configuraciones globales, es decir, del sistema o de toda la página .
Para convertir. htaccess en una configuración válida, hay varios convertidores que facilitan la configuración. Apache permite que los módulos sean integrados posteriormente por los usuarios ingresándolos en la configuración y cargándolos en el servidor web. En contraste, con Nginx, los módulos son una parte permanente del programa compilado. Una expansión para incluir nuevas funciones, por lo tanto, casi siempre requiere que se reemplace la versión del programa instalado.
Pros y contras de Nginx
Los sitios web conocidos confían en Nginx como su servidor web y reciben varios miles de visitas todos los días.
El proyecto Nginx surgió de la necesidad de desarrollar un servidor web rápido, confiable, seguro y eficiente para el motor de búsqueda ruso Rambler. Desde el punto de vista del rendimiento, esta suele ser la mejor opción debido a estas propiedades. Los sitios web populares con miles o millones de visitas todos los días, incluidos WordPress, Netflix, Apple, Spotify o Facebook, prefieren usar Nginx. Los expertos estiman que la cuota de mercado del servidor web entre los 10.000 sitios de Internet más populares supera el 60 por ciento.
También tiene algunas ventajas para proyectos pequeños. Permite, por ejemplo, una reducción del rendimiento del hardware y, por lo tanto, de los costes operativos sin afectar la velocidad de respuesta o la carga de la página. Una gran desventaja de Nginx es la configuración más compleja en comparación con Apache. Además, debido a la definición exclusivamente global, esto restringe las opciones de configuración individual para varios usuarios independientes. Debido a esta característica, muchos proveedores de espacio web todavía prefieren Apache para sus clientes.
No te vayas sin leer: ¿Qué es Silverlight?
Apache y Nginx como servidor web combinado
Para poder aprovechar las ventajas de ambos programas, se ofrece una combinación del servidor web. En este caso, Nginx sirve como instancia principal y solo reenvía solicitudes especiales a Apache para minimizar sus conexiones. El procedimiento requiere derechos de administración en el servidor y una configuración individual, pero puede reducir significativamente el consumo de recursos. Sin embargo, la configuración del servidor web requiere conocimientos especializados adecuados.