![Varnish における `.port` バックエンドと `.host` バックエンドの長所と短所](https://rvso.com/image/776292/Varnish%20%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%20%60.port%60%20%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%E3%81%A8%20%60.host%60%20%E3%83%90%E3%83%83%E3%82%AF%E3%82%A8%E3%83%B3%E3%83%89%E3%81%AE%E9%95%B7%E6%89%80%E3%81%A8%E7%9F%AD%E6%89%80.png)
職場には varnish クラスターがあります。すべてのリモート バックエンドは.host
値を使用します (これは必須だと思います) が、ローカル バックエンドのすべての構成、つまり config/varnishd があるサーバーで実行されているバックエンドは値を使用します.path
。今朝、varnish サーバーの 1 つで問題が発生しました。基本的に、によって参照されるソケットが.path
存在しないため、起動しませんでした。ソケットを復旧するためにさまざまな方法を試しましたが、どれも機能しなかったため、.backend
代わりに値を使用するように varnish 構成を切り替えました。これは利点だと思います。サーバーごとに各構成をコンパイルする心配をせずに、集中管理された varnish 構成を簡単に維持できるようになったからです (つまり、.host
特定のサーバーに対応するバックエンドから行を削除します)。
ソケットを使用してローカルの varnish クラスターに接続することで、大きなメリットがありますか (SSL 終了が要因である場合は、hitch を使用します)? すべての条件が同じであれば、.host
値を使用する方が、構成の更新のプッシュがはるかに簡単になるので、優れたオプションだと思います。
答え1
Unix ドメイン ソケットに を使用すると、TCP/IP 接続にやを.path
使用するよりもはるかに高速になります。.host
.port
スループットが懸念される場合は、より高いスループット (TLS 経由で 100 Gbps 以上) が得られる Unix ドメイン ソケットを使用してください。
大量のスループットがそれほど重要でない場合は、UDS を必要としない TCP/IP を使用できます。
UDS の場合、権限が重要なので、Varnish と Hitch の両方にソケットにアクセスするための適切な権限があることを確認してください。Varnish はソケットを作成し、Hitch はそれを使用します。