Zwei Tintenfische verketten

Zwei Tintenfische verketten

Ich habe zwei Squid-Server, Squid A und Squid B.

Squid A führt eine transparente Zwischenspeicherung für das lokale Netzwerk durch.

Ich möchte Squid A so einrichten, dass es bei einer Anforderung einer URL, die einem regulären Ausdruck entspricht, die Anforderung nicht wie üblich ausführt, sondern über Squid B „umleitet“, sodass Squid B die Anforderung ausführt, das Ergebnis an Squid A zurückgibt und dieser es an den Client weiterleitet.

Wie richte ich die Konfigurationsdatei für Squid A ein, um dies zu tun?

Antwort1

Verwenden Sie Folgendes in einer Squid-Konfiguration (normalerweise /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

Und im Anschluss in der Squid B-Konfiguration oben auf anderen ACLs

acl A_proxy src <Squid server A IP>/32
http_access allow A_proxy

Anschließend können Sie der Datei /etc/squid/divert.txt reguläre Ausdrücke hinzufügen und Squid neu laden. Die passenden URLs werden von Server B und nicht direkt angefordert.

Der Grund, warum ich das Hinzufügen von ACL auch auf Proxy B erwähnt habe, ist, dass ich vermeiden möchte, dass Einstellungen für Authentifizierung, Verbindungslimit usw. auf Proxy B Auswirkungen auf Clients von Proxy A haben, da solche Probleme sehr schwer zu debuggen sind. Daher ist es besser, alle Anfragen von Proxy A an Proxy B zuzulassen. Wenn Sie etwas blockieren möchten, blockieren Sie es in beiden Proxy-Konfigurationen.

Antwort2

Sie möchten in der Datei squid.conf von Squid A etwas wie das Folgende. Verwenden Sie es als Beispiel und passen Sie es an Ihre genauen Anforderungen an.

# Squid B als übergeordnetes Element definieren
cache_peer squid.b.example.com übergeordneter 3128 3130 Standard

# Erstellen Sie ACLs für alle Domänen oder IP-Adressbereiche, die Sie
# möchte nicht vom übergeordneten Element (Squid B) abrufen. Beispiel:
acl local_domains Domäne Ihre.lokalen.Domänen.hier
acl local_ip dst Ihre.lokalen.IP-Adressen.hier
always_direct_allow lokale_Domänen
always_direct lokale_IP zulassen

# und den direkten Zugriff auf alles andere verweigern
never_direct alle zulassen

Antwort3

Squid verfügt speziell über eine Funktion, die die hierarchische Organisation von Proxy-Servern unterstützt.Squid-Handbuchseiteverfügt über eine ausgezeichnete Dokumentation zu diesem Thema.

verwandte Informationen