
Tengo dos servidores de calamares, Squid A y Squid B.
Squid A almacena en caché de forma transparente para la red local.
Me gustaría configurar Squid A para que, en una solicitud de una URL que coincida con una expresión regular, en lugar de atender la solicitud normalmente, "redireccione" a través de Squid B para que Squid B atienda la solicitud y pase el resultado a Squid A. que lo pasa al cliente.
¿Cómo configuro el archivo de configuración de Squid A para hacer esto?
Respuesta1
Utilice lo siguiente en la configuración de squid A (normalmente /etc/squid/squid.conf)
cache_peer <squid server B IP> parent <server B squid port> 3130 no-query no-digest no-netdb-exchange
acl otherproxy url_regex "/etc/squid/divert.txt"
cache_peer_access <Squid server B IP> allow otherproxy
never_direct allow otherproxy
cache_peer_access <squid server B IP> deny all
Y siguiendo en la configuración Squid B encima de otras ACL
acl A_proxy src <Squid server A IP>/32
http_access allow A_proxy
Después de eso, puede agregar expresiones regulares al archivo /etc/squid/divert.txt y recargar squid. Las URL coincidentes se solicitarán desde el servidor B y no directamente.
La razón por la que mencioné agregar acl en el proxy B también es para evitar configuraciones de autenticación, límite de conexión, etc. en el proxy B que afecten a los clientes del proxy A, ya que estos problemas son muy difíciles de depurar. Por lo tanto, es mejor permitir todas las solicitudes del proxy A al proxy B. Si desea bloquear algo, bloquéelo en ambas configuraciones de proxy.
Respuesta2
quieres algo como lo siguiente en squid.conf de squid A. Úselo como ejemplo y modifíquelo para adaptarlo a sus requisitos exactos.
# definir calamar B como padre cache_peer squid.b.example.com padre 3128 3130 predeterminado # crear ACL para cualquier dominio o rango de direcciones IP que # no quiero recibir del padre (calamar B). Por ejemplo: acl dominio_dominios_locales su.dominios.locales.aquí acl local_ip dst sus.direcciones.ip.locales.aquí siempre_direct_allow dominios_locales Always_direct permite local_ip # y denegar el acceso directo a todo lo demás never_direct permitir todo
Respuesta3
Squid tiene específicamente una función que admite la organización jerárquica de servidores proxy. Elpagina del manual del calamartiene excelente documentación sobre ese tema.