No tengo clara la diferencia entre Load Balancer y Reverse Proxy. Ambos parecen tener el mismo comportamiento: distribuir solicitudes entrantes a servidores de fondo.
No tengo clara la diferencia entre Load Balancer y Reverse Proxy. Ambos parecen tener el mismo comportamiento: distribuir solicitudes entrantes a servidores de fondo.
Respuestas:
Su confusión es razonable: a menudo son lo mismo. Pero no siempre. Cuando se refiere a un equilibrador de carga, se refiere a algo muy específico: un servidor o dispositivo que equilibra las solicitudes entrantes en dos o más servidores web para distribuir la carga. Sin embargo, un proxy inverso generalmente tiene cualquier cantidad de características:
equilibrio de carga: como se discutió anteriormente
almacenamiento en caché: puede almacenar en caché el contenido de los servidores web detrás de él y, por lo tanto, reducir la carga en los servidores web y devolver parte del contenido estático al solicitante sin tener que obtener los datos de los servidores web
seguridad: puede proteger los servidores web al evitar el acceso directo desde Internet; puede hacerlo a través de medios simples simplemente ofuscando los servidores web o puede tener algunos componentes más activos que realmente revisan las solicitudes entrantes en busca de código malicioso
Aceleración SSL: cuando se usa SSL; puede servir como un punto de terminación para esas sesiones SSL para que la carga de trabajo de tratar con el cifrado se descargue de los servidores web
Creo que esto cubre la mayor parte, pero probablemente hay algunas otras características que me he perdido. Ciertamente, no es raro ver un dispositivo o pieza de software comercializado como un equilibrador de carga / proxy inverso porque las características se agrupan con tanta frecuencia.
Además, un proxy inverso es específico de los servidores web.
Sin embargo, los equilibradores de carga pueden manejar muchos otros protocolos. Si bien la web (HTTP) es la gran idea hoy en día, cosas como DNS, correo (SMTP, IMAP), etc. también se pueden equilibrar en la carga. Es justo hoy en día cuando la mayoría de la gente piensa "Internet" o "red IP", piensan en la web. Hay muchas más cosas por ahí que pueden ser más oscuras, o más de un nicho.
Si bien el resultado neto (distribuir solicitudes entre servidores) es el mismo entre varios equilibradores de carga y servidores proxy inversos, la diferencia está en el método utilizado para distribuir las solicitudes.
Algunos equilibradores de carga equilibran el tráfico utilizando DNS, resolviendo el mismo nombre a diferentes IP en un round robin redirigiendo efectivamente las solicitudes. Esto a menudo puede ser útil cuando las solicitudes de equilibrio de carga entre centros de datos u otras ubicaciones físicas. Esta es una mala elección si necesita una conmutación por error "instantánea", ya que está a merced del servidor DNS de sus clientes para honrar el TTL que ha proporcionado. El GSS (Selector de sitio global) de Cisco es un buen ejemplo de equilibrio de carga basado en DNS.
Otros equilibradores de carga funcionan reescribiendo los encabezados de paquetes destinados a una IP virtual a la IP real de un servidor en una granja. Esto proporciona un equilibrio de carga en tiempo real y una conmutación por error casi instantánea. Un ejemplo de esto sería el CSM (Módulo de conmutación de contenido) de Cisco
Tenga en cuenta que en los dos ejemplos anteriores, hay una conversación TCP entre el cliente y el servidor.
Un proxy inverso funciona aceptando la solicitud en nombre del servidor web y luego haciendo eco de esa solicitud al servidor web y devolviéndola al cliente, opcionalmente almacenando en caché los resultados si se produce una solicitud similar.
Tenga en cuenta que el cliente nunca establece una conexión con el servidor web; más bien la conversación es estrictamente entre el proxy y el cliente.
Un equilibrador de carga puede equilibrar el tráfico desde la capa 3 hacia arriba a la capa 7, pero un proxy inverso es específico de HTTP.
Un proxy inverso acepta una solicitud de un cliente, la reenvía a un servidor que puede cumplirla y devuelve la respuesta del servidor al cliente (lo que significa que un servidor detrás del proxy inverso puede comunicarse con características algo diferentes de un protocolo o un protocolo diferente )
Un equilibrador de carga distribuye las solicitudes de clientes entrantes entre un grupo de servidores, en cada caso devuelve la respuesta del servidor seleccionado al cliente apropiado.