que - reverse proxy español
Diferencia entre el servidor proxy y el servidor proxy inverso (18)
¿Cuál es la diferencia entre el servidor proxy y el servidor proxy inverso?
Cloudflare tiene un gran artículo con imágenes que explican esto en detalle.
Consulte aquí: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/
Algunos diagramas pueden ayudar:
Reenviar proxy
Proxy inverso
Aquí hay un ejemplo de un proxy inverso (como un equilibrador de carga).
Un cliente navega a website.com y el servidor al que llega tiene un proxy inverso que se ejecuta en él. El proxy inverso pasa a ser pound . Pound toma la solicitud y la envía a uno de los tres servidores de aplicaciones que se encuentran detrás de ella. En este ejemplo, Pound es un equilibrador de carga. es decir. está equilibrando la carga entre tres servidores de aplicaciones. Los servidores de aplicaciones devuelven el contenido del sitio web al cliente.
Aunque mi entendimiento desde una perspectiva de apache es que Proxy significa que si el sitio x proxies para el sitio y, las solicitudes de x devuelven y.
El proxy inverso significa que la respuesta de y se ajusta para que todas las referencias a y se conviertan en x.
Para que el usuario no pueda decir que hay un proxy involucrado ...
Encontré este diagrama muy útil. Solo muestra la arquitectura de una configuración de proxy de forward
frente a reverse
del cliente al servidor a través de Internet. Esta imagen te ayudará a comprender mejor la post de qyb2zm302 y otras publicaciones.
También puede ver this video de DevCentral
de F5
por Peter Silva.
Fuente de la imagen: Quora . Todos los créditos a la persona que creó este diagrama.
Me recordó el proverbio clásico:
Una imagen vale más que 1000 palabras.
Esta es una gran lectura para comprender las diferencias entre un PROXY delantero y inverso http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy
Un proxy hacia adelante oculta las identidades de los clientes (usuarios), mientras que un proxy inverso oculta las identidades de sus servidores.
La diferencia es principalmente en el despliegue. Los proxies de avance y retroceso web tienen las mismas características subyacentes, aceptan solicitudes de solicitudes HTTP en varios formatos y proporcionan una respuesta, generalmente accediendo al servidor de origen o de contacto.
Los servidores con todas las funciones generalmente tienen control de acceso, almacenamiento en caché y algunas funciones de mapeo de enlaces.
Un proxy de reenvío es un proxy al que se accede mediante la configuración de la máquina cliente. El cliente necesita compatibilidad con el protocolo para las funciones de proxy (redirección, autenticación de proxy, etc.). El proxy es transparente para la experiencia del usuario, pero no para la aplicación.
Un proxy inverso es un proxy que se implementa como un servidor web y se comporta como un servidor web, con la excepción de que en lugar de componer localmente el contenido de los programas y el disco, envía la solicitud a un servidor de origen. Desde la perspectiva del cliente, ES un servidor web, por lo que la experiencia del usuario es completamente transparente.
De hecho, una sola instancia de proxy puede ejecutarse como un proxy directo e inverso al mismo tiempo para diferentes poblaciones de clientes.
Esa es la versión corta, puedo aclarar si la gente quiere comentar.
La mejor explicación http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy con diagramas:
Si bien un proxy de reenvío se envía en nombre de los clientes ( o solicita hosts ) , un proxy de proxy inverso en nombre de los servidores
En efecto, mientras que un proxy directo oculta las identidades de los clientes, un proxy inverso oculta las identidades de los servidores
La respuesta de qyb2zm302 detalla muy bien las aplicaciones de los proxies pero se desliza hacia arriba en el concepto fundamental entre proxies hacia adelante y hacia atrás. Para el proxy inverso, X -> Y -> Z, X sabe sobre Y y no Z, y no al revés.
http://www.jscape.com/blog/bid/87783/Forward-Proxy-vs-Reverse-Proxy explica la diferencia entre los proxies directos e inversos muy claramente.
Un proxy es simplemente un intermediario para la comunicación (solicitudes + respuestas). Cliente <-> Proxy <-> Servidor
Proxy del cliente: ( Cliente <-> Proxy ) <-> Servidor
El proxy actúa en nombre del cliente. El cliente sabe acerca de las 3 máquinas involucradas en la cadena. El servidor no lo hace.
Proxy del servidor: Cliente <-> ( Proxy <-> Servidor )
El proxy actúa en nombre del servidor. El cliente solo conoce el proxy. Servidor sabe toda la cadena.
Me parece que el avance y el retroceso son simplemente confusos, nombres dependientes de la perspectiva para el cliente y el servidor proxy. Sugiero abandonar el primero por el segundo, por comunicación explícita.
Por supuesto, para complicar aún más la cuestión, no todas las máquinas son exclusivamente clientes o servidores. Si hay una ambigüedad en el contexto, es mejor especificar explícitamente dónde se encuentra el proxy y las comunicaciones que canaliza.
Las respuestas anteriores fueron precisas, pero quizás demasiado concisas. Intentaré añadir algunos ejemplos.
En primer lugar, la palabra "proxy" describe a alguien o algo que actúa en nombre de otra persona.
En el ámbito de las computadoras, estamos hablando de un servidor que actúa en nombre de otra computadora.
Para fines de accesibilidad, limitaré mi discusión a los proxies web. Sin embargo, la idea de un proxy no se limita a los sitios web.
FORWARD proxy
La mayoría de las discusiones sobre proxies web se refieren al tipo de proxy conocido como "proxy de reenvío".
El evento de proxy, en este caso, es que el "proxy de reenvío" recupera datos de otro sitio web en nombre del solicitante original.
Un cuento de 3 computadoras (parte I)
Por ejemplo, enumeraré tres computadoras conectadas a internet.
- X = su computadora, o computadora "cliente" en internet
- Y = el sitio web proxy, proxy.example.org
- Z = el sitio web que desea visitar, www.example.net
Normalmente, uno se conectaría directamente desde X --> Z.
Sin embargo, en algunos escenarios, es mejor para Y --> Z
en nombre de X
, que se encadena de la siguiente manera: X --> Y --> Z
Razones por las que X querría usar un servidor proxy hacia adelante
Aquí hay una lista (muy) parcial de usos de un servidor proxy de reenvío.
1) X no puede acceder a Z directamente porque
a) Alguien con autoridad administrativa sobre la conexión a Internet de
X
ha decidido bloquear todo acceso al sitioZ
Ejemplos:
El virus Storm Worm se está propagando engañando a las personas para que visiten
familypostcards2008.com
, por lo que el administrador del sistema ha bloqueado el acceso al sitio para evitar que los usuarios se infecten involuntariamente.Los empleados de una empresa grande han estado perdiendo demasiado tiempo en
facebook.com
, por lo que la administración quiere que el acceso esté bloqueado durante el horario comercial.Una escuela primaria local no permite el acceso a Internet al
playboy.com
webplayboy.com
.Un gobierno no puede controlar la publicación de noticias, por lo que controla el acceso a las noticias al bloquear sitios como
wikipedia.org
. Ver TOR o FreeNet .
b) El administrador de
Z
ha bloqueadoX
Ejemplos:
El administrador de Z ha notado intentos de piratería provenientes de X, por lo que el administrador ha decidido bloquear la dirección IP de X (y / o el rango de red).
Z es un sitio web de foro.
X
es spamming el foro. Z bloques X.
Proxy inverso
Un cuento de 3 computadoras (parte II)
Para este ejemplo, listaré tres computadoras conectadas a internet.
- X = su computadora, o computadora "cliente" en internet
- Y = el sitio web de proxy inverso, proxy.example.com
- Z = el sitio web que desea visitar, www.example.net
Normalmente, uno se conectaría directamente desde X --> Z.
Sin embargo, en algunos escenarios, es mejor que el administrador de Z
restrinja o rechace el acceso directo y obligue a los visitantes a pasar por Y primero. Entonces, como antes, tenemos datos que están siendo recuperados por Y --> Z
en nombre de X
, que se encadenan de la siguiente manera: X --> Y --> Z
Lo que es diferente esta vez en comparación con un "proxy de reenvío", es que esta vez el usuario X
no sabe que está accediendo a Z
, porque el usuario X
solo ve que se está comunicando con Y
El servidor Z
es invisible para los clientes y solo el proxy inverso Y
es visible externamente. Un proxy inverso no requiere configuración (proxy) en el lado del cliente.
El cliente X
piensa que solo se está comunicando con Y
( X --> Y
), pero la realidad es que Y
reenvía todas las comunicaciones ( X --> Y --> Z
nuevamente).
Razones por las que Z querría configurar un servidor proxy inverso:
- 1) Z quiere forzar todo el tráfico a su sitio web para que pase a través de Y primero.
- a) Z tiene un gran sitio web que millones de personas quieren ver, pero un solo servidor web no puede manejar todo el tráfico. Entonces, Z configura muchos servidores y coloca un proxy inverso en Internet que enviará a los usuarios al servidor más cercano cuando intenten visitar Z. Esto es parte de cómo funciona el concepto de Red de distribución de contenido (CDN).
- Ejemplos:
- Apple Trailers utiliza Akamai
- Jquery.com aloja sus archivos javascript utilizando CloudFront CDN ( sample ).
- etc.
- Ejemplos:
- a) Z tiene un gran sitio web que millones de personas quieren ver, pero un solo servidor web no puede manejar todo el tráfico. Entonces, Z configura muchos servidores y coloca un proxy inverso en Internet que enviará a los usuarios al servidor más cercano cuando intenten visitar Z. Esto es parte de cómo funciona el concepto de Red de distribución de contenido (CDN).
- 2) El administrador de Z está preocupado por las represalias por el contenido alojado en el servidor y no quiere exponer el servidor principal directamente al público.
- a) Los propietarios de marcas de Spam como "Canadian Pharmacy" parecen tener miles de servidores, mientras que en realidad tienen la mayoría de los sitios web alojados en muchos menos servidores. Además, las quejas de abuso sobre el spam solo cerrarán los servidores públicos, no el servidor principal.
En los escenarios anteriores, Z
tiene la capacidad de elegir Y
Enlaces a temas del post:
Red de entrega de contenidos
- Listas de CDNs
software de proxy de reenvío (lado del servidor)
- PHP-Proxy
- cgi-proxy
- phproxy (descontinuado)
- glype
- Censura de internet wiki: lista de proxies web
- squid (al parecer, también puede funcionar como proxy inverso)
software de proxy inverso para HTTP (lado del servidor)
- apache mod_proxy (también puede funcionar como un proxy de reenvío para HTTP)
- nginx (utilizado en hulu.com, sitios de spam, etc.)
- HAProxy
- lighthttpd
- perlbal (escrito para livejournal)
- portfusion
- pound
- caché de barniz (escrito por un gurú del kernel freebsd )
- repose
software de proxy inverso para TCP (lado del servidor)
- balance
- delegate
- pen
- portfusion
- balanceador de carga puro (sitio web difunto)
- director de python
ver también:
Según mi entendimiento ..........
Para empezar, como todos saben, proxy significa "la autoridad para representar a otra persona". Ahora hay dos cosas adelante y proxy inverso.
FORXARD PROXY Supongamos que desea acceder a "google" y "google" a su vez tendrá un número n de servidores para responder a esa solicitud en particular.
Ahora, en este caso, mientras solicita algo de Google y no desea que Google vea su dirección IP, entonces utilizará un proxy de reenvío, como se explica a continuación.
A -----> B -----> C
Ahora, aquí está A, enviando una solicitud a través de B, así que C pensará que la solicitud proviene de B, no de A. De esta manera, puede evitar que la IP de sus clientes no se exponga al mundo exterior.
PROXY REVERSO. Ahora, en este caso, para que entiendas, tomaremos el mismo caso de proxy hacia adelante. Aquí ha solicitado algo para google, que a su vez enviará una solicitud al servidor de la aplicación u otro servidor proxy para obtener la respuesta. Así que estas cosas sucederán como se explica a continuación.
A -----> B -----> C
C------>D
C<------D
A <----- B <----- C En el diagrama anterior puede ver que se ha enviado una solicitud a C desde B, no desde A. Luego, desde C, habrá una solicitud que se enviará a D. Del mismo modo La respuesta irá a C desde D y luego a B y A.
El diagrama anterior indica que solo es el contexto lo que importa, aunque ambos proxies actúan de la misma manera, pero el proxy del lado del cliente está ocultando la información del cliente, mientras que el proxy del lado del servidor ocultará la información del lado del servidor.
Por favor comenta si crees que la explicación anterior es incorrecta.
Un proxy directo es un servidor intermedio que se encuentra entre el cliente y el servidor de origen. Para obtener el contenido del servidor de origen, el cliente envía una solicitud al proxy nombrando al servidor de origen como destino y el proxy luego solicita el contenido del servidor de origen y lo devuelve al cliente. El cliente debe estar configurado especialmente para usar el proxy de reenvío para acceder a otros sitios.
Por el contrario, un proxy inverso (o puerta de enlace) aparece al cliente como un servidor web normal. No es necesaria ninguna configuración especial en el cliente. El cliente realiza solicitudes ordinarias de contenido en el espacio de nombres del proxy inverso. El proxy inverso decide dónde enviar esas solicitudes y devuelve el contenido como si fuera el origen.
Un uso típico de un proxy inverso es proporcionar a los usuarios de Internet acceso a un servidor que está detrás de un firewall. Los proxies inversos también se pueden usar para equilibrar la carga entre varios servidores de servicios de fondo, o para proporcionar almacenamiento en caché para un servidor de servicios de fondo más lento. Además, los proxies inversos se pueden usar simplemente para colocar varios servidores en el mismo espacio de URL.
Para más información visite: Apache Docs.
Un par de definiciones simples sería
Forward Proxy: actuar en nombre de un solicitante (o consumidor del servicio)
Proxy inverso: actuar en nombre del productor de servicios / contenido.
Un servidor proxy procesa (y opcionalmente almacena en caché) las solicitudes de red salientes a varios recursos públicos no necesariamente relacionados a través de Internet. Un proxy inverso captura (y opcionalmente almacena en caché) las solicitudes entrantes de Internet y las distribuye a varios recursos privados internos, generalmente para fines de Alta disponibilidad.
Los proxies hacia adelante otorgan al cliente el anonimato (es decir, piense en Tor).
Los proxies inversos otorgan el anonimato de los servidores back-end (es decir, piense en los servidores detrás de una DMZ).
Proxy (Forward Proxy): cuando las computadoras en su LAN se conectan a un servidor proxy que accede a Internet. Los beneficios incluyen, solo el servidor está expuesto a internet. Las personas en el exterior no pueden acceder directamente a las computadoras. Los proxies de reenvío pueden mejorar el acceso a Internet para los usuarios al almacenar en caché las descargas. También se pueden utilizar para restringir el acceso a ciertos sitios. Además, solo el servidor proxy necesitaría una dirección pública, no los clientes que se conectan a él.
Proxy inverso: un proxy inverso es lo opuesto a un proxy directo. En su lugar, actúa como un proxy en nombre de los servidores a los que se conecta. En lugar de acceder directamente a un servidor remoto, un usuario pasaría por el proxy inverso y se dirigiría al servidor apropiado desde allí. Solo el proxy inverso necesitaría un certificado SSL, solo se necesitaría una dirección IP pública y puede manejar el equilibrio de carga de las solicitudes entrantes para mejorar la experiencia general del usuario.
Fuente de la imagen: docs.microsoft.com
Proxy: está haciendo la solicitud en nombre del cliente . Por lo tanto, el servidor devolverá la respuesta al proxy y el proxy enviará la respuesta al cliente. De hecho, el servidor nunca "aprenderá" quién era el cliente (IP del cliente), solo conocerá el proxy. Sin embargo, el cliente definitivamente conoce el servidor, ya que esencialmente formatea la solicitud HTTP destinada al servidor, pero simplemente la entrega al proxy.
Proxy inverso: está recibiendo la solicitud en nombre del servidor . Reenvía la solicitud al servidor, recibe la respuesta y luego devuelve la respuesta al cliente. En este caso, el cliente nunca "aprenderá" quién era el servidor real (IP del servidor) (con algunas excepciones), solo conocerá el proxy. El servidor sabrá o no el cliente real, dependiendo de las configuraciones del proxy inverso.
si no hay un proxy to see from client side and server side are the same: Client -> Server
proxy from client side: Client -> proxy -> Server from Server side: Client -> Server
proxy inverso from client side: Client -> Server from Server side: Client -> proxy -> Server
Así que creo que si lo configuró el usuario del Cliente, se llamó proxy, si lo configuró el Administrador del servidor es un proxy inverso.
Debido a que los propósitos y las razones para configurarlo son diferentes, tratan los datos de diferentes maneras y usan diferentes programas.
o
User side | Server side
client <-> proxy <-> gate_server <-> reverse_proxy <-> realserver
Desde la perspectiva de "servidor de puerta", uno es proxy otro es inverso.