Squid es un proxy web HTTP de almacenamiento en caché y reenvío . Tiene una amplia variedad de usos, incluida la aceleración de un servidor web almacenando en caché solicitudes repetidas, almacenando en caché web , DNS y otras búsquedas de redes informáticas para un grupo de personas que comparten recursos de red, y ayuda a la seguridad al filtrar el tráfico. Aunque se usa principalmente para HTTP y FTP , Squid incluye soporte limitado para varios otros protocolos, incluidos Internet Gopher , SSL , [6] TLS y HTTPS . Squid no es compatible con Protocolo SOCKS , a diferencia de Privoxy , con el que se puede utilizar Squid para dar soporte a SOCKS.
Desarrollador (es) | Duane Wessels, Henrik Nordström, Amos Jeffries, Alex Rousskov, Francesco Chemolli, Robert Collins, Guido Serassio y voluntarios [1] |
---|---|
Versión inicial | Julio de 1996 |
Lanzamiento estable | 4.15 [2] / 10 de mayo de 2021 |
Repositorio | https://github.com/squid-cache/squid |
Escrito en | C ++ |
Sistema operativo | BSD , Linux , Unix , Windows [3] |
Tipo | Servidor proxy |
Licencia | GNU GPLv2 [4] |
Sitio web | www |
Squid fue diseñado originalmente para ejecutarse como un demonio en sistemas similares a Unix. Se mantuvo un puerto de Windows hasta la versión 2.7. Las nuevas versiones disponibles en Windows utilizan el entorno Cygwin . [7] Squid es un software gratuito publicado bajo la Licencia Pública General GNU .
Historia
Squid fue desarrollado originalmente como el caché de objetos Harvest , [8] parte del proyecto Harvest en la Universidad de Colorado Boulder . [9] [10] El trabajo adicional sobre el programa se completó en la Universidad de California, San Diego y se financió a través de dos subvenciones de la National Science Foundation . [11] Duane Wessels bifurcó la "última versión precomercial de Harvest" y la renombró a Squid para evitar confusiones con la bifurcación comercial llamada Cached 2.0, que se convirtió en NetCache . [12] [13] Squid versión 1.0.0 se lanzó en julio de 1996. [12]
El calamar ahora se desarrolla casi exclusivamente a través de esfuerzos voluntarios.
Funcionalidad básica
Después de instalar un servidor proxy Squid, los navegadores web se pueden configurar para usarlo como un servidor HTTP proxy , lo que permite que Squid retenga copias de los documentos devueltos, lo que, en solicitudes repetidas de los mismos documentos, puede reducir el tiempo de acceso y el ancho de banda. consumo. Esto suele ser útil para que los proveedores de servicios de Internet aumenten la velocidad con sus clientes y las LAN que comparten una conexión a Internet . Debido a que los servidores de almacenamiento en caché están controlados por el operador del servicio web, los servidores proxy de almacenamiento en caché no anonimizan al usuario y no deben confundirse con los servidores proxy anónimos.
Un programa cliente (por ejemplo, un navegador) tiene que especificar explícitamente el servidor proxy que desea usar (típico de los clientes de ISP), o podría estar usando un proxy sin ninguna configuración adicional: "almacenamiento en caché transparente", en cuyo caso todas las solicitudes HTTP salientes. son interceptados por Squid y todas las respuestas se almacenan en caché. Este último suele ser una configuración corporativa (todos los clientes están en la misma LAN) y, a menudo, presenta las preocupaciones de privacidad mencionadas anteriormente.
Squid tiene algunas características que pueden ayudar a anonimizar las conexiones, como deshabilitar o cambiar campos de encabezado específicos en las solicitudes HTTP de un cliente . Si estos están configurados, y lo que están configurados para hacer, depende de la persona que controla la computadora que ejecuta Squid. Las personas que solicitan páginas a través de una red que utiliza Squid de forma transparente pueden no saber si esta información se está registrando. [14] Dentro de las organizaciones del Reino Unido, al menos, los usuarios deben ser informados si se monitorean computadoras o conexiones a Internet. [15]
Proxy inverso
La configuración anterior, almacenar en caché el contenido de un número ilimitado de servidores web para un número limitado de clientes, es la clásica. Otra configuración es " proxy inverso " o "aceleración del servidor web" (usando http_port 80 accel vhost ). En este modo, la caché sirve a un número ilimitado de clientes para un número limitado de servidores web, o solo uno.
Por ejemplo, si slow.example.com es un servidor web "real" y www.example.com es el servidor de caché Squid que lo "acelera", la primera vez que se solicita una página de www.example.com , el El servidor de caché obtendría la página real de slow.example.com , pero las solicitudes posteriores obtendrían la copia almacenada directamente del acelerador (durante un período configurable, después del cual la copia almacenada se descartaría). El resultado final, sin ninguna acción por parte de los clientes, es menos tráfico al servidor de origen, lo que significa menos uso de CPU y memoria, y menos necesidad de ancho de banda. Sin embargo, esto significa que el servidor de origen no puede informar con precisión sobre sus números de tráfico sin una configuración adicional, ya que todas las solicitudes parecen provenir del proxy inverso. Una forma de adaptar los informes en el servidor de origen es utilizar el encabezado HTTP X-Fordered-For informado por el proxy inverso, para obtener la dirección IP del cliente real.
Es posible que un solo servidor Squid sirva simultáneamente como proxy normal y inverso. Por ejemplo, una empresa puede alojar su propio sitio web en un servidor web, con un servidor Squid actuando como un proxy inverso entre los clientes (clientes que acceden al sitio web desde fuera de la empresa) y el servidor web. El mismo servidor Squid podría actuar como un caché web clásico, almacenando en caché las solicitudes HTTP de los clientes dentro de la empresa (es decir, los empleados que acceden a Internet desde sus estaciones de trabajo), acelerando así el acceso web y reduciendo las demandas de ancho de banda.
Limitaciones del rango de medios
Por ejemplo, una característica del protocolo HTTP es limitar una solicitud al rango de datos en el recurso al que se hace referencia. Esta función es utilizada ampliamente por sitios web de transmisión de video como YouTube , de modo que si un usuario hace clic en el medio de la barra de progreso del video, el servidor puede comenzar a enviar datos desde el medio del archivo, en lugar de enviar el archivo completo desde el inicio y el usuario esperando a que los datos anteriores terminen de cargarse.
Las descargas parciales también son ampliamente utilizadas por Microsoft Windows Update para que los paquetes de actualización extremadamente grandes se puedan descargar en segundo plano y pausar a la mitad de la descarga, si el usuario apaga su computadora o se desconecta de Internet.
El formato de descarga de Metalink permite a los clientes realizar descargas segmentadas emitiendo solicitudes parciales y distribuyéndolas en varios espejos.
Squid puede transmitir solicitudes parciales al servidor web de origen. Para que una solicitud parcial se satisfaga a una velocidad rápida desde la caché, Squid requiere que una copia completa del mismo objeto ya exista en su almacenamiento.
Si un usuario de video proxy está viendo una transmisión de video y navega a una página diferente antes de que el video se descargue por completo, Squid no puede conservar la descarga parcial para su reutilización y simplemente descarta los datos. Se requiere una configuración especial para forzar que dichas descargas continúen y se almacenen en caché. [dieciséis]
Sistemas operativos compatibles
Squid puede ejecutarse en los siguientes sistemas operativos :
- AIX
- BSDI
- Unix digital
- FreeBSD
- HP-UX
- IRIX
- Linux
- Mac OS
- NetBSD
- Próximo paso
- OpenBSD
- OS / 2 (incluidos ArcaOS y eComStation ) [17]
- SCO OpenServer
- Solaris
- UnixWare
- Windows [18]
Ver también
- Acelerador web que analiza la aceleración HTTP basada en host
- Servidor proxy que analiza los proxies del lado del cliente.
- Proxy inverso que analiza los proxies del lado del origen
- Comparación de servidores web
Referencias
- ^ "¿Quién se ocupa del proyecto Squid?" .
- ^ "Calamar versión 4" . Consultado el 5 de junio de 2021 .
- ^ "¿Cuál es el mejor sistema operativo para Squid?" .
- ^ "Licencia de calamar" .
- ^ "Logotipo del proyecto Squid" . Consultado el 6 de julio de 2014 .
- ^ "Preguntas frecuentes de Squid: Acerca de Squid" . 13 de febrero de 2007. Archivado desde el original el 29 de diciembre de 2007 . Consultado el 13 de febrero de 2007 .
- ^ "Squid 3.5 para Windows" . Febrero de 2019.
La compilación actual se basa en la compilación de Squid 3.5.1 para Cygwin Windows 64 bit
- ^ C.Mic Bowman, Peter B. Danzig, Darren R. Hardy, Udi Manper, Michael F. Schwartz, Sistema de acceso y descubrimiento de información de The Harvest, Redes de computadoras y sistemas ISDN, Volumen 28, Números 1-2, Diciembre de 1995, Páginas 119-125. doi: 10.1016 / 0169-7552 (95) 00098-5
- ^ Introducción de Squid , en el sitio web de Squid
- ^ Harvest cache ahora disponible como un "acelerador httpd" , por Mike Schwartz en la lista de correo http-wg, martes 4 de abril de 1995, como lo reenvió Brian Behlendorf a lalista de correo de desarrolladores del servidor HTTP Apache
- ^ "Patrocinadores de Calamar" . Archivado desde el original el 11 de mayo de 2007 . Consultado el 13 de febrero de 2007 .
La NSF fue la principal fuente de financiación para el desarrollo de Squid entre 1996 y 2000. Dos subvenciones (# NCR-9616602, # NCR-9521745) recibidas a través de la División de Investigación e Infraestructura de Redes Avanzadas (ANIR) fueron administradas por la Universidad de California en San Diego
- ^ a b Duane Wessels Squid and ICP: Past, Present, and Future , Proceedings of the Australian Unix Users Group. Septiembre de 1997, Brisbane, Australia
- ^ "netcache.com" . Archivado desde el original el 12 de noviembre de 1996 . Consultado el 7 de agosto de 2012 .
- ^ Consulte la documentación de header_access y header_replace para obtener más detalles.
- ^ Consulte, por ejemplo, Supervisión informática en el lugar de trabajo y su privacidad
- ^ "Referencia de configuración de Squid" . Consultado el 26 de noviembre de 2012 .
- ^ Puertos OS / 2 por Paul Smedley , Puertos OS / 2
- ^ https://wiki.squid-cache.org/KnowledgeBase/Windows
Otras lecturas
- Wessels, Duane (2004). Calamar: la guía definitiva . O'Reilly Media . ISBN 978-0-596-00162-9.
- Saini, Kulbir (2011). Squid Proxy Server 3.1: Guía para principiantes . Packt Publishing . ISBN 978-1-849-51390-6.
enlaces externos
- Página web oficial
- Blog de calamar
- Guía del usuario de Squid
- Proxy transparente de calamar para DD-WRT
- Proxy inverso de Squid : cree un proxy inverso con Squid
- Manual de configuración - Guía del manual de configuración de ViSolve Squid
- Manual de configuración - Opciones de configuración autorizadas de Squid
- "Configuración de Solaris" . Archivado desde el original el 15 de enero de 2008. - Configurar calamar en solaris
- SQUID - Instalación en CentOS, Fedora y Red Hat