cflm, CC BY-SA 4.0 , via Wikimedia Commons

Una introducción a los servidores «proxy» por Tony Tran

Download PDF

Este artículo en específico se rige por la licencia CC-BY que fue asignada por su correspondiente(s) autor(es) o autora(s). Dicha licencia permite así la propagación de este material y su traducción a cualquier idioma. Usted podrá encontrar un resumen de tal licencia en este enlace (en idioma castellano) y la licencia en sí misma de forma completa y totalmente traducida al español en este otro enlace.

Licencia Creative Commons
This article is under License Creative Commons Attribution 4.0 International.

Traducción del artículo conceptual publicado en la Comunidad de la empresa neoyorquina de alquiler de máquinas virtuales DigitalOcean, titulado originalmente «An Introduction to Proxies» por Tony Tran.

https://www.digitalocean.com/community/conceptual_articles/introduction-to-proxies

Nota del traductor: «proxy» en el idioma inglés significa, entre otras cosas, ‘representante, apoderado o mandatario’ por lo que en idioma castellano propiamente se debe hablar de servidor proxy, en sus distintos tipos y clases.


Tabla de contenido:

Introducción

Un proxy, también llamado servidor proxy, es un software de servidor que actúa como intermediario entre un cliente y un servidor en Internet. Sin un servidor proxy, un cliente enviaría una solicitud de un recurso directamente a un servidor, y luego el servidor devolvería el recurso directamente al cliente. Si bien este enfoque es sencillo de entender e implementar, agregar servidores proxy brinda beneficios en forma de mayor rendimiento, privacidad, seguridad y más. Como capa de paso adicional, un servidor proxy actúa como un guardián de Internet entre clientes y servidores.

En términos generales, el paquete combinado de hardware de servidor con software proxy instalado también se conoce como servidor proxy. Sin embargo, este artículo se centrará en los servidores proxy tradicionalmente definidos como software y en el contexto de los servidores web. Obtendrá un desglose de los dos tipos principales, un servidor proxy directo y un servidor proxy inverso. Cada tipo tiene un caso de uso diferente, a menudo confundido debido a la convención de nomenclatura similar.

Este artículo le proporcionará una comprensión de qué son los servidores proxy y sus subtipos, y cómo son útiles en las configuraciones comunes. Al leer este artículo, podrá identificar las circunstancias en las que un servidor proxy es beneficioso y elegir la solución correcta entre el servidor proxy directo y el servidor proxy inverso en cualquier situación.

cflm, CC BY-SA 4.0 , via Wikimedia Commons
cflm, CC BY-SA 4.0 , via Wikimedia Commons

Servidores proxy directos

Un servidor proxy de reenvío, también llamado servidor proxy abierto, actúa como representante de un cliente que intenta enviar una solicitud a través de Internet a un servidor de origen. En este escenario, todos los intentos de enviar solicitudes por parte del cliente se enviarán al servidor proxy de reenvío. El servidor proxy de reenvío, en lugar del cliente, examinará la solicitud. Primero, determinará si este cliente está autorizado para enviar solicitudes a través de este servidor proxy de reenvío específico. Luego rechazará la solicitud o la reenviará al servidor de origen. El cliente no tiene acceso directo a internet; solo puede llegar a lo que el servidor proxy de reenvío le permita acceder.

Un caso de uso común de los servidores proxy de reenvío es obtener una mayor privacidad o anonimato en Internet. Un servidor proxy de reenvío accede a Internet en lugar de un cliente y, en ese proceso, puede usar una dirección IP diferente a la dirección IP original del cliente.

Dependiendo de cómo se haya configurado, un servidor proxy de reenvío puede otorgar una serie de funciones, lo que le permite:

  • Evita el seguimiento de anuncios (publicidad y propaganda).
  • Eludir vigilancia.
  • Identificar restricciones en función de su geolocalización.

Los servidores proxy de reenvío también se utilizan en sistemas de seguridad centralizada y acceso basado en permisos, como en un lugar de trabajo. Cuando todo el tráfico de Internet pasa a través de una capa de servidor proxy de reenvío común, un administrador puede permitir que solo clientes específicos accedan a Internet filtrado a través de un cortafuegos común. En lugar de mantener cortafuegos para la capa de cliente que pueden involucrar muchas máquinas con diferentes entornos y usuarios, se puede colocar un cortafuegos en la capa de servidor proxy de reenvío.

Tenga en cuenta que los servidores proxy directos deben configurarse manualmente para poder usarse, mientras que los servidores proxy inversos pueden pasar desapercibidos para el cliente. Dependiendo de si el servidor proxy de reenvío pasa la dirección IP de un cliente al servidor de origen, la privacidad y el anonimato se pueden otorgar o dejar transparentes.

Hay varias opciones a considerar para los servidores proxy de reenvío:

Servidores proxy inversos

Un servidor proxy inverso actúa como representante de un servidor web y maneja las solicitudes entrantes de los clientes en su nombre. Este servidor web puede ser un solo servidor o varios servidores. Además, puede ser un servidor de aplicaciones como Gunicorn. En cualquiera de los escenarios, una solicitud provendría de un cliente a través de Internet en general. Normalmente, esta solicitud irá directamente al servidor web que tiene los recursos que solicita el cliente. En cambio, un servidor proxy inverso actúa como intermediario, aislando al servidor web de la interacción directa con la Internet abierta.

Desde la perspectiva de un cliente, interactuar con un servidor proxy inverso no es diferente de interactuar directamente con el servidor web. Es funcionalmente lo mismo, y el cliente no puede notar la diferencia. El cliente solicita un recurso y luego lo recibe, sin necesidad de ninguna configuración adicional por parte del cliente.

Los proxies inversos otorgan funciones como:

  • Seguridad centralizada para la capa del servidor web.
  • Dirigir el tráfico entrante según las reglas que puede configurar.
  • Funcionalidad añadida para el almacenamiento en caché.

Si bien la seguridad centralizada es un beneficio de los servidores proxy tanto directos como inversos, los servidores proxy inversos brindan esto a la capa del servidor web y no a la capa del cliente. En lugar de centrarse en mantener los cortafuegos en la capa del servidor web, que puede contener varios servidores con diferentes configuraciones, la mayor parte de la seguridad del cortafuegos se puede centrar en la capa del servidor proxy inverso. Además, eliminar la responsabilidad de interactuar con un cortafuegos e interactuar con las solicitudes de los clientes fuera de los servidores web les permite concentrarse únicamente en servir los recursos.

En el caso de que existan múltiples servidores detrás de un servidor proxy inverso, el servidor proxy inverso también se encarga de dirigir qué solicitudes van a cuál servidor. Múltiples servidores web pueden estar sirviendo al mismo recurso, cada uno sirviendo diferentes tipos de recursos, o alguna combinación de los dos. Estos servidores pueden usar el protocolo HTTP como un servidor web convencional, pero también pueden incluir protocolos de servidor de aplicaciones como FastCGI. Puede configurar un proxy inverso para dirigir a los clientes a servidores específicos según el recurso solicitado o para seguir ciertas reglas con respecto a la carga de tráfico.

Los servidores proxy inversos también pueden aprovechar su ubicación frente a los servidores web al ofrecer la funcionalidad de almacenamiento en caché. Los recursos activos estáticos grandes se pueden configurar con reglas de almacenamiento en caché para evitar acceder a los servidores web en cada solicitud, con algunas soluciones que ofrecen una opción para servir activos estáticos directamente sin tocar el servidor web en absoluto. Además, el proxy inverso puede manejar la compresión de estos activos.

El popular servidor web Nginx también es una popular solución de proxy inverso. Si bien el servidor web Apache también tiene una función de proxy inverso, es una función adicional para Apache, mientras que Nginx se creó originalmente y se enfoca en la funcionalidad de proxy inverso.

Diferenciación de casos de uso de servidor proxy directo y proxy inverso

Debido a que «hacia adelante» y «hacia atrás» vienen con connotaciones de direccionalidad y comparaciones engañosas con el tráfico «entrante» y «saliente», estas etiquetas pueden ser confusas porque ambos tipos de  servidores proxy manejan solicitudes y respuestas. En cambio, una mejor manera de diferenciar entre servidores proxy directos y servidores proxy inversos es examinar las necesidades de la aplicación que está creando.

Un servidor proxy inverso es útil cuando se crea una solución para servir aplicaciones web en Internet. Representan a sus servidores web en cualquier interacción con Internet.

Un servidores proxy de reenvío es útil cuando se coloca frente al tráfico de clientes para su uso personal o en un entorno de trabajo. Representan el tráfico de su cliente en cualquier interacción con Internet.

Diferenciar por caso de uso en lugar de centrarse en las convenciones de nomenclatura similares le ayudará a evitar confusiones.

Conclusiones

Este artículo definió qué es un servidor proxy junto con los dos tipos principales, el servidor proxy directo y el servidor proxy inverso. Se utilizaron casos prácticos de uso y una exploración de características beneficiosas para diferenciar los servidores proxy directos y los servidores proxy inversos. Si desea explorar la implementación de servidores proxy , puede consultar la guía sobre cómo configurar Nginx como servidor web y proxy inverso para Apache en un servidor Ubuntu 20.04.


Traducción del artículo conceptual publicado en la Comunidad de la empresa neoyorquina de alquiler de máquinas virtuales DigitalOcean, titulado originalmente «An Introduction to Proxies» por Tony Tran.

https://www.digitalocean.com/community/conceptual_articles/introduction-to-proxies

Nota del traductor: «proxy» en el idioma inglés significa, entre otras cosas, ‘representante, apoderado o mandatario’ por lo que en idioma castellano propiamente se debe hablar de servidor proxy, en sus distintos tipos y clases.

Download PDF
Por favor, lea también   Ansible: instalación de git en un servidor remoto