¿Cuál es la diferencia entre un servidor proxy y un servidor proxy inverso? [cerrado]
¿Cuál es la diferencia entre un servidor proxy y un servidor proxy inverso?
Las respuestas anteriores fueron precisas, pero quizás demasiado concisas. Intentaré agregar algunos ejemplos.
En primer lugar, la palabra "representante" describe a alguien o algo que actúa en nombre de otra persona.
En el ámbito de la informática, estamos hablando de un servidor que actúa en nombre de otra computadora.
Por motivos de accesibilidad, limitaré mi discusión a los servidores proxy web; sin embargo, la idea de un proxy no se limita a los sitios web.
proxy ADELANTE
La mayor parte del debate sobre los servidores proxy web se refiere al tipo de proxy conocido como "proxy directo".
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 desdeX --> 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 utilizar un servidor proxy directo:
Aquí hay una lista (muy) parcial de los usos de un servidor proxy directo:
1) X no puede acceder a Z directamente porque
a) Alguien con autoridad administrativa sobre
X
la conexión a Internet ha decidido bloquear todo acceso al sitioZ
.Ejemplos:
El virus Storm Worm se propaga engañando a las personas para que visiten
familypostcards2008.com
el sitio, por lo que el administrador del sistema ha bloqueado el acceso al sitio para evitar que los usuarios se infecten sin darse cuenta.Los empleados de una gran empresa han estado perdiendo demasiado tiempo en
facebook.com
, por lo que la gerencia quiere bloquear el acceso durante el horario comercial.Una escuela primaria local no permite el acceso a Internet al
playboy.com
sitio web.Un gobierno no puede controlar la publicación de noticias, por lo que controla el acceso a las noticias bloqueando 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 ha decidido bloquear la dirección IP de X (y/o su rango de red).
Z es un sitio web de foro.
X
está spammeando el foro. Z bloquea X.
proxy INVERSO
Un cuento de 3 computadoras (parte II)
Para este ejemplo, enumeraré 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 desdeX --> Z.
Sin embargo, en algunos escenarios, es mejor que el administrador Z
restrinja o no permita el acceso directo y obligue a los visitantes a pasar por Y primero. Entonces, como antes, tenemos datos que recupera 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 Z
, porque el usuario X
solo ve que se está comunicando con Y
. El servidor Z
es invisible para los clientes y sólo 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 toda la comunicación ( X --> Y --> Z
nuevamente).
Razones por las que Z querría configurar un servidor proxy inverso:
- 1) Z quiere forzar que todo el tráfico a su sitio web pase primero por Y.
- a) Z tiene un sitio web grande 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 a ellos 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 ( muestra ).
- etc.
- Ejemplos:
- a) Z tiene un sitio web grande 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 a ellos 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, cuando en realidad tienen la mayoría de los sitios web alojados en muchos menos servidores. Además, las quejas de abuso sobre spam sólo cerrarán los servidores públicos, no el servidor principal.
En los escenarios anteriores, Z
tiene la posibilidad de elegir Y
.
Enlaces a temas de la publicación:
Red de entrega de contenidos
- Listas de CDN
- http://www.mytestbox.com/miscellaneous/content-delivery-networks-cdn-list/
- http://blog.streamingmedia.com/the_business_of_online_vi/2008/01/updated-list-of.html
Software proxy directo (lado del servidor)
- Proxy PHP
- proxy-cgi
- phproxy (descontinuado)
- glipe
- Wiki de censura de Internet: Lista de servidores proxy web
- calamar (aparentemente, también puede funcionar como proxy inverso)
Software de proxy inverso para HTTP (lado del servidor)
- Apache mod_proxy (también puede funcionar como proxy de reenvío para HTTP)
- nginx (usado en hulu.com, sitios de spam, etc.)
- HAProxy
- Servidor web Caddy
- luzhttpd
- perlbal (escrito para livejournal)
- portfusión
- libra
- caché de barniz (escrito por un gurú del kernel de FreeBSD )
- reposo
Software de proxy inverso para TCP (lado del servidor)
- balance
- delegar
- bolígrafo
- portfusión
- equilibrador de carga puro (sitio web desaparecido)
- director de pitón
Ver también:
- Wikipedia - Red de entrega de contenido
- Wikipedia - Categoría: proxy_inverso
- Wikipedia - Equilibrio de carga
- Wikipedia - Escalabilidad
Un par de definiciones simples serían:
Proxy directo: actuar en nombre de un solicitante (o consumidor de servicios)
Proxy inverso: Actuar en nombre del productor de servicios/contenido.
El siguiente diagrama me pareció muy útil. Simplemente muestra la arquitectura de una configuración de proxy directo versus inverso del cliente al servidor a través de Internet. Esta imagen le ayudará a comprender mejor la respuesta de qyb2zm302 y otras respuestas.
También puede ver este vídeo de DevCentral de F5 de Peter Silva.
Fuente de la imagen: Quora . Sin embargo, según Martijn Pieters , esta imagen podría ser de Pulse Secure Community o del sitio de Julien Pauli (en francés) en developmentpez.com.
Me recordó el proverbio clásico:
Una imagen vale más que 1000 palabras.
Proxy directo versus proxy inverso (2012) explica muy claramente la diferencia entre proxies directos e inversos.
La respuesta de qyb2zm302 detalla muy bien las aplicaciones de los proxies, pero se equivoca en el concepto fundamental entre los proxies directos e inversos. Para el proxy inverso, X → Y → Z, X conoce Y y no Z, y no al revés.
Un proxy es simplemente un intermediario para la comunicación (solicitudes + respuestas). Cliente <-> Proxy <-> Servidor
- Proxy del cliente: ( cliente <-> proxy ) <-> servidor
El apoderado actúa en nombre del cliente. El cliente conoce las tres máquinas involucradas en la cadena. El servidor no.
- Proxy del servidor: cliente <-> ( proxy <-> servidor )
El proxy actúa en nombre del servidor. El cliente sólo conoce el proxy. El servidor conoce toda la cadena.
Me parece que adelante y atrás son simplemente nombres confusos y dependientes de la perspectiva para el proxy del cliente y del servidor . Sugiero abandonar lo primero por lo segundo, por una comunicación explícita.
Por supuesto, para complicar aún más el asunto, no todas las máquinas son exclusivamente un cliente o un servidor. Si hay una ambigüedad en el contexto, es mejor especificar explícitamente dónde se encuentra el proxy y las comunicaciones que canaliza.
Algunos diagramas pueden ayudar:
proxy directo
proxy inverso