
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.