![Vor- und Nachteile eines `.port`-Backends gegenüber einem `.host`-Backend in Varnish](https://rvso.com/image/776292/Vor-%20und%20Nachteile%20eines%20%60.port%60-Backends%20gegen%C3%BCber%20einem%20%60.host%60-Backend%20in%20Varnish.png)
Bei der Arbeit haben wir einen Varnish-Cluster. Alle Remote-Backends verwenden den .host
Wert (von dem ich annehme, dass er erforderlich ist), aber alle Konfigurationen für das lokale Backend, d. h. das Backend, das auf dem Server läuft, auf dem sich die Konfiguration/Varnishd befindet, verwenden den .path
Wert. Heute Morgen hatte ich ein Problem mit einem der Varnish-Server, im Grunde .path
existierte der Socket, auf den verwiesen wurde, nicht und ließ sich daher nicht starten. Ich habe verschiedene Möglichkeiten ausprobiert, um den Socket wieder zum Laufen zu bringen, aber nachdem nichts davon funktionierte, habe ich die Varnish-Konfiguration so umgestellt, dass sie .backend
stattdessen den Wert verwendet. Ich sehe darin einen Vorteil, da ich jetzt problemlos eine zentralisierte Varnish-Konfiguration verwalten kann, ohne mir Gedanken darüber machen zu müssen, jede Konfiguration für jeden Server einzeln zu kompilieren (d. h. die .host
Zeile aus dem Backend zu entfernen, die dem jeweiligen Server entspricht).
Gibt es erhebliche Vorteile bei der Verwendung eines Sockets zur Verbindung mit dem lokalen Varnish-Cluster (mithilfe von Hitch zur SSL-Terminierung, falls dies ein Faktor ist)? Wenn alle anderen Bedingungen gleich sind, halte ich den Verwendungswert .host
für die bessere Option, da er das Übertragen von Konfigurationsaktualisierungen wesentlich einfacher macht.
Antwort1
Die Verwendung .path
für Unix Domain Sockets ist viel schneller als die Verwendung von .host
und .port
für TCP/IP-Verbindungen.
Wenn der Durchsatz ein Problem darstellt, verwenden Sie bitte Unix Domain Sockets, da Sie einen höheren Durchsatz erzielen (> 100 Gbit/s über TLS).
Wenn ein hoher Durchsatz nicht so wichtig ist, können Sie TCP/IP verwenden, für das kein UDS erforderlich ist.
Für UDS sind Berechtigungen wichtig. Stellen Sie daher sicher, dass sowohl Varnish als auch Hitch über die richtigen Berechtigungen für den Zugriff auf den Socket verfügen. Varnish erstellt den Socket und Hitch verwendet ihn.