Ich habe folgendes Problem mit Tintenfisch:
Einige Clients greifen über einen Squid-Proxy gleichzeitig auf 62 Server zu. Alle Server haben denselben Hostnamen (www.example.com), aber unterschiedliche öffentliche IP-Adressen (123.123.123.2 bis 123.123.123.63). Der Serverbesitzer verwendet eine Art DNS-Round-Robin.
Ich habe nur Zugriff auf den Squid-Server und die Clients. Die Verbindung zu den Servern ist nur über die Proxy-IPs zulässig.
Ohne Proxy sende ich nur eine Anfrage zum Laden von Daten von http // 123.123.123.5 / dataforme, aber ich sende den Host-Header "www.example.com". Das funktioniert so wie es sollte.
Aber jetzt mit Squid als Nicht-Caching-Proxy ist dies nicht mehr möglich. Squid überschreibt den Host-Header der gesendeten Anfrage. Auf diese Weise weiß der Zielserver nicht, welche Daten zu liefern sind, da der Host-Header nicht korrekt übertragen wird.
ich setze
url_rewrite_host_header off
Dies hat jedoch keine Auswirkung. Es scheint, dass diese Option nur verwendet wird, wenn Squid als Redirector verwendet wird. Das mache ich nicht.
Folgendes funktioniert, wenn keine anderen Websites abgerufen werden müssen:
header_access Host deny all
header_replace Host www.example.com
Wenn ich dies tue, erhält jede Anfrage den Host-Header www.example.com. Dann ist es nicht mehr möglich, auf andere Seiten zuzugreifen.
Was kann ich machen?
Vielen Dank im Voraus für Ihre Hilfe!
tcpdump
könnte helfen ...Antworten:
Standard-Squid-Installationen tun dies nur mit fehlerhaften Anweisungen. Wenn Sie eine Standardversion verwenden, wiederholen Sie die Konfiguration von Grund auf neu. Wenn es sich um eine benutzerdefinierte Kompilierung handelt, sollten Sie den Code und die Kompilierungsoptionen überprüfen.
quelle
Fügen Sie diese Zeilen in Ihre Tintenfischkonfiguration ein. Mal sehen, ob es hilft.
quelle