SlideShare una empresa de Scribd logo
Apache Server
VS
Nginx
Julio 2018
Contenido
- TL; DR
- Contexto y trayectoria
- Arquitectura
- Rendimiento
- Contenido dinámico
- Configuración
- Modularidad
- Soporte
TL; DR to long; don’t read
Apache Server Nginx
Usos
Cliente-servidor mejor
API Gateway mejor
Microservicios mejor
Contenido
estático igual igual
dinámico procesado internamente procesado por terceros
Configuración
Distribuida mejor
Centralizada mejor
Publicación de contenidos mejor
Funcionalidad de proxy server mejor
Desarrollo de nuevos módulos mejor
Módulos en el listado oficial 122 143
Load Balancer mejor
Caching mejor
terminación SSL mejor
Soporte
Comunidad OpenSource mejor
Empresarial mejor
“Apache is like Microsoft Word, it has a million options but you only need six. Nginx does those six things, and it does five of them 50 times faster than Apache.”
—Chris Lea.
“Apache is like Microsoft Word, it has a million
options but you only need six. Nginx does
those six things, and it does five of them 50
times faster than Apache.”
—Chris Lea.
Senior engineer at @NodeSource
Contexto y trayectoria
Evolución del
tráfico y volumen
en Internet
- Más usuarios
- Mayor de tráfico
- Request más pesadas
- Response time
más exigente
1991 1993 1995 1999 2002 2005 2014
2002 2004 2011 2015 2018
NSCA
httpd
Apache
Group
Versión
1
Apache
Software
Foundation
Versión
2
70% market
share
Release
2.4
Versión
inicial
Open
source
Versión
1
Dinamic
modules
Release
1.14
Contexto y trayectoria
Contexto y trayectoria
1991
- Rob MacCool desarrolla NSCA-httpd
1993
- Nace Apache Group usando NSCA-httpd “a patchy server”
1995
- Versión 1.0
1998
- Release 1.3
1999
- Nace Apache Software Foundation (Brian Behlendorf)
2002
- Versión 2.0
2005
- Mayor cuota de mercado 70%
2014
- Release 2.4
2002
- Igor Sysoev (Rambler.ru) desarrolla nginx para resolver el problema
C10K de Apache Server
2004
- El código de Nginx pasa a ser open source
2011
- Fundación de NGINX, Inc
- Versión 1
2015
- Se añaden la opción dynamic modules
2018
- Release 1.14
El problema C10K se refiere a la incapacidad de un
servidor para escalar más allá de 10.000 conexiones o
clientes debido al agotamiento de recursos.
Las arquitecturas thread-based asignan
aproximadamente 1 MB por subproceso, esto agota la
memoria del servidor sumado al excesivo cambio de
contexto de la CPU para atender a todos los
subprocesos
Arquitectura
Thread-based
Se crea un proceso para atender cada conexión
Event-based
Un proceso gestiona múltiples conexiones
procesándolas según los eventos que se
generan
Arquitectura
Evolución de Apache Server para mejorar
la escalabilidad
- Prefork
Arrancar previamente threads a espera de
nuevas conexiones
- MPM multi-processing module
Varios threads comparten recursos para evitar
algunos tipos de bloqueos
MPM
prefork
Arquitectura
Alternativa de Nginx para aumentar la
alta concurrencia de conexiones
- Un proceso por core (worker)
- En memoria se almacena el estado de la conexión
- Cada conexión genera eventos a ejecutar y los añade
a la cola de eventos
- El worker ejecuta la cola de eventos sin generar
bloqueos
Rendimiento
Nginx ofrece mayor concurrencia y menor uso de recursos
Contenido dinámico
Basado en módulos
El contenido dinámico es procesado por
módulos añadidos al server
Basado en proxy
El contenido dinámico se envia a procesos
externos (proxy)
httpd
+
php_mod
worker php_fpm
Configuración
-La configuración global se registra en el
fichero httpd.conf
-El desarrollador puede añadir configuraciones
a nivel de directorio usando ficheros .htaccess
-Configuración orientada a la publicación de
contenidos
-La configuración global se registra en el
fichero nginx.conf
-No existe configuración por .htaccess
-Configuración orientada al enrutamiento de la
request (URIs , proxy server)
Modularidad
El desarrollo de nuevos módulos en Apache
es sencillo y existe un gran catálogo de
módulos disponibles
La instalación de módulos no necesita
compilación
El número de módulos disponibles es menor
debido a que son más complejos de programar
Desde 2015 no es necesario compilar Nginx
para añadir nuevos módulos (dynamic modules)
Nginx, Inc. publica un listado oficial de módulos
que certifica y da soporte.
Soporte
-Licencia ASF 2
-Amplio soporte por la comunidad Apache
-Explícitamente no se ofrece soporte
personalizado
- Licencia BSD
-Soporte comunitario
(aunque la comunidad de Nginx es más
pequeña y estricta)
-Nginx Inc ofrece soporte personalizado
sobre la versión Nginx Plus
info@hoplasoftware.com
Referencias
https://w3techs.com/technologies/cross/web_server/ranking
http://www.websiteoptimization.com/speed/tweak/average-web-page/
https://www.nginx.com/blog/nginx-vs-apache-our-view/
https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
http://berb.github.io/diploma-thesis/original/042_serverarch.html#42
https://nginx.org/en/
https://www.nginx.com/resources/wiki/modules/
http://httpd.apache.org/
http://httpd.apache.org/ABOUT_APACHE.html
http://httpd.apache.org/docs/2.4/mod/prefork.html
https://httpd.apache.org/docs/2.4/mod/

Más contenido relacionado

PPTX
Tools for High Availability
PPTX
Taller HA y Balanceo de Cargas con NIGX.
ODP
Pruebas del servicio web
ODP
ODP
Servidores web: cloud
ODP
Apache ha muerto, Viva Lighttpd
DOCX
Entrada 11 del blog
Tools for High Availability
Taller HA y Balanceo de Cargas con NIGX.
Pruebas del servicio web
Servidores web: cloud
Apache ha muerto, Viva Lighttpd
Entrada 11 del blog

La actualidad más candente (20)

PPTX
Desarrollo simple con Webmatrix
PPTX
AWS Lambda + Serverless Framework
PDF
Optimización Servidor Web
DOCX
Qué es un servidor web
PPTX
Rodarte zarate tarea6_archivo de conexión de php hacia my_sql (con pdo)
ODP
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
PPTX
Presentacion taller de programacion
PDF
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
PPT
Sacándole el jugo a apache
PDF
NodeJS y MongoDB
ODP
Tecnologías de Alta Disponibilidad en Linux
PPTX
PDF
Webinar –Desplegar Hypervisores en servidores dedicados
PDF
Azure BootCamp 2017 Madrid
PDF
Servidores web de altas prestaciones. Tema 5
PPTX
Servicios de red amp
PDF
Webinar –Conectar servidores dedicados con Servidores Cloud
PDF
Apache3 christiany victor
PDF
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
PDF
Sitios web de alto rendimiento y alta disponibilidad
Desarrollo simple con Webmatrix
AWS Lambda + Serverless Framework
Optimización Servidor Web
Qué es un servidor web
Rodarte zarate tarea6_archivo de conexión de php hacia my_sql (con pdo)
Novedades en Arquitectura Front End // Meetup UX UI @UTN Mendoza
Presentacion taller de programacion
Arquitectura de las nuevas aplicaciones web: Como lograr escalabilidad, alta ...
Sacándole el jugo a apache
NodeJS y MongoDB
Tecnologías de Alta Disponibilidad en Linux
Webinar –Desplegar Hypervisores en servidores dedicados
Azure BootCamp 2017 Madrid
Servidores web de altas prestaciones. Tema 5
Servicios de red amp
Webinar –Conectar servidores dedicados con Servidores Cloud
Apache3 christiany victor
¿Cómo se despliega y autoescala Couchbase en Cloud? ¡Aprende de manera práctica!
Sitios web de alto rendimiento y alta disponibilidad
Publicidad

Similar a Apache Server vs Nginx (20)

PDF
2. Revision de Tecnologias Web.pdf
PDF
Servidores web
PPTX
Servidor http
ODP
Servidor web apache
PPTX
Tarea de apache
PPTX
Servidor apache zavaleta mata rene
PPTX
servidor web.pptx
PPTX
Servidores Web - Cervantes Palacios Sofia.pptx
PDF
¿Cómo elegir servidor web?
DOC
Base de datos ii apache
DOCX
Servidor web para linux
PDF
1212
PDF
Nginx
PDF
Cómo elegir un servidor Web
PDF
Unidad 2
PDF
Meetup - NGinx - 08/2014
PPTX
Servidor Web Apache para Linux
PPTX
software APACHE.
PDF
WPO en servidores y entornos web
2. Revision de Tecnologias Web.pdf
Servidores web
Servidor http
Servidor web apache
Tarea de apache
Servidor apache zavaleta mata rene
servidor web.pptx
Servidores Web - Cervantes Palacios Sofia.pptx
¿Cómo elegir servidor web?
Base de datos ii apache
Servidor web para linux
1212
Nginx
Cómo elegir un servidor Web
Unidad 2
Meetup - NGinx - 08/2014
Servidor Web Apache para Linux
software APACHE.
WPO en servidores y entornos web
Publicidad

Último (6)

PPTX
Conceptos basicos de Base de Datos y sus propiedades
DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PPTX
sistemas de informacion.................
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
Conceptos basicos de Base de Datos y sus propiedades
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
Derechos_de_Autor_y_Creative_Commons.pptx
sistemas de informacion.................
AutoCAD Herramientas para el futuro, Juan Fandiño
Su punto de partida en la IA: Microsoft 365 Copilot Chat

Apache Server vs Nginx