Encadenamiento de dos calamares

Encadenamiento de dos calamares

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.

información relacionada