Hace 1 año | Por Grahml a linuxadictos.com
Publicado hace 1 año por Grahml a linuxadictos.com

Hace pocos días se dio a conocer el lanzamiento de la primera versión de la nueva rama principal nginx de 1.25, dentro de la cual se continuará con el desarrollo de nuevas funcionalidades. Para quienes desconocen de Nginx, deben saber que es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo electrónico (IMAP/POP3). NGINX es un servidor web liviano y de alto rendimiento que utiliza una arquitectura asincrónica basada en eventos para manejar muchas solicitudes simultáneas.

Comentarios

ed25519

Yo siempre he usado nginx no como backend si no como proxy para enrutar HTTP y para balancear y temas asi. Apache me sigue pareciendo un gran projecto y con muchas opciones.

Lito

Para notar la diferencia entre apache y nginx ya tienes que recibir un tráfico bestial. Y en ese caso el servidor web seguramente sea la menor de tus preocupaciones.

n

Yo para mis proyectillos sigo con Apache. Y jamas he hecho comparativa. ¿Que diferencia hay?

innerfocus

#1 Yo habiendo utilizado los dos y sin ser ningún experto, en imágenes Docker con Nginx + Alpine el rendimiento del contenedor suele ser superior que otras configuraciones con Apache. Nginx peca de ser mas "estricto" y menos flexible que Apache, pero hay gente que también ve en eso una ventaja por evitar agujeros de seguridad. A grandes rasgos esas son mis impresiones sin meterme tecnicamente en lo que puede hacer uno y otro.

MacMagic

#1 Pues yo para proyectos en Docker como dice #2 he cambiado de Apache a Nginx y va mucho mejor.

frg

#1 Me parece más cómodo y menos farragoso de configurar, y a nivel de consumo/rendimiento es otro nivel. Pena que por retrocompatibilidad y algunos módulos de mierda no pueda aplicarlo en todos los lugares donde me gustaría.

i

#1 Sin ninguna configuracion adicional, recien instalados en ubuntu 22.04

10.000 peticiones con 500 concurrentes.

Apache.

Server Software: Apache/2.4.41
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 3407 bytes

Concurrency Level: 500
Time taken for tests: 0.617 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 36790000 bytes
HTML transferred: 34070000 bytes
Requests per second: 16196.17 [#/sec] (mean)
Time per request: 30.872 [ms] (mean)
Time per request: 0.062 [ms] (mean, across all concurrent requests)
Transfer rate: 58189.16 [Kbytes/sec] received


Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 10 3.6 10 31
Processing: 5 19 15.9 15 104
Waiting: 3 16 16.5 12 102
Total: 16 29 16.0 25 116

Percentage of the requests served within a certain time (ms)
50% 25
66% 26
75% 27
80% 27
90% 30
95% 69
98% 101
99% 111
100% 116 (longest request)

Nginx

Server Software: nginx/1.18.0
Server Hostname: localhost
Server Port: 80

Document Path: /
Document Length: 3407 bytes

Concurrency Level: 500
Time taken for tests: 0.439 seconds
Complete requests: 10000
Failed requests: 0
Total transferred: 36500000 bytes
HTML transferred: 34070000 bytes
Requests per second: 22767.48 [#/sec] (mean)
Time per request: 21.961 [ms] (mean)
Time per request: 0.044 [ms] (mean, across all concurrent requests)
Transfer rate: 81153.61 [Kbytes/sec] received


Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 9 2.1 9 16
Processing: 4 12 3.1 12 25
Waiting: 1 9 2.7 9 21
Total: 11 21 2.5 21 31

Percentage of the requests served within a certain time (ms)
50% 21
66% 22
75% 23
80% 23
90% 24
95% 25
98% 26
99% 27
100% 31 (longest request)

Lo que pasa es que depende mucho de los modulos que ejecutes y lo que hagas con ellos. Personalmente siempre he podido configurar apache2 para tener un rendimiento tan bueno como nginx y para mi es mas potente y con una gran sistema de modulos.

Apache2 por defecto usa el modo "event" de MPM pero hay otros.