Hola a todos,
Estos días he estado leyendo documentación sobre alternativas al Apache para mejorar el rendimiento de nuestro servidor en la raspberry y he visto soluciones interesantes.
Apache funciona perfectamente sirviendo ficheros estáticos de nuestro proyecto en Django, pero consume más recursos que otros servidores web. Buscando alternativas por internet me topé con un servidor web el cual desconocía su existencia hasta ahora: nginx.
Antes de nada decir que no voy a implantar nginx (por ahora), quedaría para una futura mejora, pero si voy a mencionarlo y la posibilidad de trabajar conjuntamente con Apache para repartirse el trabajo.
Tanto Nginx como Apache son dos servidores web potentes y eficaces. Apache es el servidor que más usado actualmente, Nginx, desde su lanzamiento público en 2006, es ahora el segundo servidor web más usado.
Las razones de la popularidad de cada respectivo servidor son claras:
el poder de Apache y velocidad de nginx son bien conocidos. Sin embargo,
ambos servidores tienen inconvenientes: Apache es consume demasiada
memoria del servidor, mientras que Nginx necesita la ayuda de php-FPM o
módulos similares para servir contenido dinámico.
Sin embargo, podemos combinar los dos servidores para conseguir el
máximo rendimiento, con Nginx como servidor de ficheros estáticos en el front-end y
Apache se encargará del procesamiento dinámico en backend.
Este sería el escenario tradicional de un servidor web:
Solemos utilizar Apache para servir cualquier tipo de contenido a través de una petición HTTP, pero en Apache
cargamos habitualmente muchos módulos necesarios para que nuestras
aplicaciones funcionen correctamente, empezando por el mismísimo PHP, pero que no necesitamos para servir contenidos estáticos (imágenes, archivos css o javascript, archivos comprimidos…).
Lo que se pretende hacer es separar de una manera sencilla las peticiones esta´ticas de las dinámicas con el fin de redirigirlas a distintos servicios y conseguir qeu las peticiones estáticas consumiesen muchos menos recursos ya que las podríamos hacer con un servidor mucho más ligero que Apache: Nginx
Este sería el esquema de red al que se pretende llegar
Todas las peticiones HTTP son recibidas en el puerto 80 por un servidor mucho más ligero que Apache (nginx, lighttpd) que se encarga de servir directamente los contenidos estáticos desde el disco y de redirigir las solicitudes dinámicas al Apache de siempre que ahora escucha en el puerto 8080, es decir, el servidor ligero actúa como proxy para las peticiones de contenidos dinámicos.
El primer paso, por tanto, es instalar y configurar Nginx para que actúe como proxy completo.
Pondremos a Nginx para que escuche en el puerto 80 y redirigirá las peticiones dinámicas a Apache en el puerto 8080.
Si se ha entendido la idea, es precisamente lo que buscaba. En caso de darme tiempo o en el futuro lo desarrollaré para que mi servidor de domótica vaya más fluído.
Un saludo.
No hay comentarios:
Publicar un comentario