Marcos Pérez Zapardiel

Marcos Pérez Zapardiel

SysAdmin

Qué son los servidores web y cuáles son los más populares

27 mayo 2021
1 minuto

Abres tu navegador preferido, tecleas una dirección y en cuestión de milisegundos estas dentro de la página web deseada, fácil, ¿verdad?. Para llevar a cabo esta “magia” por detrás se encuentran los servidores web, los encargados de recoger la información que solicitas y enviarla a tu navegador para mostrarla de manera bonita y legible por el ser humano.

Vamos a ilustrar dicho proceso de manera sencilla:


Como vemos en la ilustración anterior, al abrir el navegador y teclear una dirección web, lo que estás mandando es una petición http a través de internet que llega a su destino, un servidor web. Este servidor, sin entrar en profundidad en el tema, es capaz de recoger la información que el usuario solicita con su petición de sí mismo (es decir, que sea el propio servidor quien disponga del contenido a entregar) o actuar de intermediario cogiendo la información de otros servidores. Esto último se conoce como “proxy” y se usa en determinadas ocasiones para por ejemplo tener control de acceso, restricción de determinado tipo de tráfico, mejora de rendimiento…

Una vez nuestro servidor web ha recibido y procesado la información, es entregada al cliente en formato HTML. El formato HTML (HyperText Markup Language) es un lenguaje de marcado que se utiliza para el desarrollo de páginas de Internet.

Aunque la función principal de un servidor web sea recibir peticiones y entregar respuestas a dichas peticiones tal y como hemos comentado, un servidor web realiza otras muchas funciones, por ejemplo:

  • Nos permite configurar sistemas de autenticación para proteger con credenciales el acceso a una sección determinada de la web.
  • Pueden actuar como caché, es decir, guarda contenido solicitado para que la próxima petición al mismo recursos sea devuelta de manera más rápida, esto ayuda a quitar carga al servidor final.
  • Se pueden configurar redirecciones, para cuando accedas a un recurso dentro de una web automáticamente te lleve a otra página o sección.
  • Dentro del servidor web se le puede configurar un certificado ssl para que la información viaje de manera segura a través del protocolo Https.

Una vez hemos explicado qué es y cómo funciona un servidor web, vamos a hablar de los 2 servidores web más usados que existen, Apache y Nginx.


Servidor web de código abierto lanzado en 1995 , gratuito y altamente configurable. Es multiplataforma por lo que puede ser usado tanto en Unix, Windows como Mac. Está en continua actualización y es mantenido y desarrollado por la Apache Software Foundation.

Apache trabaja a partir de módulos, lo que le permite activar o desactivar características de manera rápida. Entre los más destacados podemos encontrar:

  • mod_gzip: Para tener la posibilidad de comprimir los datos, tardando menos en llegar a servirse.
  • mod_ssl: Habilita el tráfico cifrado de los datos que se envían de un lado a otro.
  • mod_cache: Al utilizar este modulo, Apache cachea contenido ya servido con anterioridad evitando procesar de nuevo las mismas peticiones una y otra vez.
  • mod_security: Para dotar al servidor de defensas ante ataques externos.
  • mod_auth: Nos sirve para proteger con usuario y contraseña una parte concreta de nuestra web.

Es importante hacer mención del famoso fichero “.htaccess” característico de Apache a través del cual se realizan diversas configuraciones del servidor. Con él se pueden crear redirecciones, páginas personalizadas de error, bloquear ciertas IPs (origen de la petición).

Es de fácil configuración respecto a otros servidores web, en contra podría decirse que su rendimiento baja en páginas con alto tráfico de visitas dado que va creando subprocesos en el servidor en función de las peticiones que lleguen.


Su fecha de lanzamiento fue en 2004. Al igual que sucede con Apache, Nginx es un servidor web de código abierto multiplataforma aunque cuenta con una versión comercial bajo el nombre de Nginx + con características adicionales. Además de realizar su función principal de servidor web como tal, es conocido por implantarse como solución de proxy inverso, balanceador de carga ( para repartir las peticiones entre varios servidores )  o como caché.

Con el paso de los años ha ganado popularidad frente a Apache en sitios webs con alto volumen de visitas y/o contenido estático ya que Nginx reduce el uso de memoria y puede manejar aproximadamente cuatro veces más solicitudes que Apache. Esto es debido a que funciona por eventos, no genera un subproceso por petición como pasa con apache sino que cada proceso puede aceptar cientos de conexiones.

 

Como vemos, ambos son buenas soluciones a tener en cuenta a la hora de montar nuestro servidor web. Incluso hay casos en los que se combinan los dos, poniendo Nginx por delante para servir estáticos, por ejemplo, y Apache detrás (backend).

En el momento de escribir este post, Nginx supera a Apache en presencia a nivel mundial pero no por ello debemos descartar a su “rival”. Apache destaca por su veteranía con todo lo que esto conlleva, documentación, parches, flexibilidad… Es ideal para empezar a trabajar con servidores web y para páginas con no mucho volumen de tráfico. Además, como punto a favor para Apache, hemos de decir que tiene mejor rendimiento y compatibilidad si nuestra plataforma va a ser Windows.

Nginx, como hemos mencionado anteriormente, es altamente recomendable para manejar mucho volumen de tráfico. En ambos casos contamos con mucho soporte en la red por lo que no debemos dejar que esto sea decisivo a la hora de escoger uno u otro.