Descubre cómo identificar las conexiones de los usuarios finales en un Load Balancer en Apache, es decir, en los balanceadores de carga cuando trabajamos con webserver Apache.
Como ya sabemos por otros artículos y tutoriales de este mismo site, dentro de tu suscripción de Servidores existe la posibilidad de desplegar balanceadores de carga o load balancer, para mejorar la estabilidad y evitar posibles interrupciones de servicio derivadas de la sobrecarga de estos, ya que el propósito de esta funcionalidad es el de repartir la carga de trabajo entre los distintos servidores disponibles en una suscripción.
El problema de tener una arquitectura con balanceadores de carga y demás es que introduce cierto nivel de complejidad que puede hacer que sea un poco más complejo identificar las conexiones de los usuarios finales.
Esto se debe a que en los servidores web se muestran conexiones cuyo origen es el propio balanceador de carga (load balancer), no las IP con las que se conectan los usuarios.
Esto es algo relativamente sencillo de solventar ya que puede configurarse a nivel de la aplicación web de destino. En este caso, vamos a ver como resolverlo para un caso con un Apache Server, un servidor web de los más ampliamente usados.
A través de este sencillo tutorial descubrirás cómo hacerlo en simples pasos de manera totalmente guiada.
Este tutorial está relacionado con:
- Cómo desplegar un balanceador de carga
- Cómo desplegar un balanceador de carga en Escritorio Remoto multiserver
¿Cómo identificar las conexiones de los usuarios finales en un Load Balancer en Apache?
Pre-requisitos o pre-configuración
Para completar de forma satisfactoria este tutorial y poder identificar las conexiones de los usuarios finales en un Load Balancer en Apache, se necesitará:
- Por un lado, estar dado de alta en la Plataforma Jotelulu con una organización y estar registrado en la misma tras hacer Log-in.
- Contar con un usuario con permiso de administración sobre toda la organización y sobre los usuarios de esta.
- Tener al menos, 2 servidores desplegados en una misma suscripción.
Paso 1. Configuramos el identificador de las conexiones de los usuarios finales en un Load Balancer en Apache
Lo primero que se debe hacer es acceder al servidor con una cuenta de acceso privilegiado, o sea con «root» o una cuenta que esté en lista de «sudoers» para a continuación editar el archivo de configuración de Apache.
El archivo de configuración de Apache está ubicado en la siguiente ruta:
/etc/apache2/apache2.conf
Para la edición, se puede usar cualquier editor como “vi” o “nano”.
# vi /etc/apache2/apache2.conf
O
# nano /etc/apache2/apache2.conf
Una vez editado el fichero, se deben buscar las líneas de “LogFormat” que es donde se configura cómo se va a comportar el log de Apache o, dicho de otra manera, cómo se van a escribir los datos en los archivos de registro (log).
Para ello se deberá agregar el texto “%{X-Forwarded-For}i” en la segunda línea de “LogFormat”, quedando como la que se muestra en la imagen de arriba o en el texto de abajo.
LogFormat «%v:%p %h %l %u %t \»%r\» %>s %O \»%{Referer}i\» \»%{User-Agent}i\»» vhost_combined
LogFormat «%{X-Forwarded-For}i %h %l %u %t \»%r\» %>s %O \»%{Referer}i\» \»%{User-Agent}i\»» combined
LogFormat «%h %l %u %t \»%r\» %>s %O» common
LogFormat «%{Referer}i -> %U» referer
LogFormat «%{User-agent}i» agent
La cadena “%{X-Forwarded-For}i” en realidad lo que hace es incluir una columna en cada entrada de log en la que se indica desde donde se ha reenviado.
Para finalizar la configuración, se debe reiniciar el servicio o recargarlo para que Apache relea el fichero de configuración, para ello se debe lanzar el comando:
# /etc/init.d/apache2 reload
Llegados a este punto ya debería estar todo solucionado, pero es recomendable que lo revisemos con una consulta del fichero de log en tiempo real, usando para ello un comando como “tail”.
# tail -f /etc/apache2/apache2.conf
En este momento ya se puede ver que, en la primera columna, la primera dirección IP que se muestra es básicamente el valor del equipo desde el que se reenvía, o sea, el valor de la cabecera “X-Forwarded-For” que se ha configurado en este tutorial.
Conclusión
Tal como has visto en este tutorial cómo identificar las conexiones de los usuarios finales en un Load Balancer en Apache, trabajar con balanceadores de carga (Load Balancers) permite repartir la carga de los clientes y servicios entre los distintos servidores para minimizar las caídas de sistemas y optimizar las colas de trabajo, pero a su vez hace que no se pueda identificar el origen de una conexión. Como has podido ver, con este tutorial se soluciona esta situación para trabajos con Apache Webserver. Al igual que el resto de los productos y servicios de esta plataforma, es muy sencillo de configurar y más siguiendo este simple tutorial.
Esperamos que con este tutorial la configuración del balanceador de carga haya quedado clara. Pero en caso de que te surja cualquier pregunta, no dudes en consultarnos.
¡Gracias por confiar en nosotros!