![Плюсы и минусы бэкенда `.port` по сравнению с бэкендом `.host` в Varnish](https://rvso.com/image/776292/%D0%9F%D0%BB%D1%8E%D1%81%D1%8B%20%D0%B8%20%D0%BC%D0%B8%D0%BD%D1%83%D1%81%D1%8B%20%D0%B1%D1%8D%D0%BA%D0%B5%D0%BD%D0%B4%D0%B0%20%60.port%60%20%D0%BF%D0%BE%20%D1%81%D1%80%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D1%8E%20%D1%81%20%D0%B1%D1%8D%D0%BA%D0%B5%D0%BD%D0%B4%D0%BE%D0%BC%20%60.host%60%20%D0%B2%20Varnish.png)
На работе у нас есть кластер Varnish. Все удаленные бэкенды используют .host
значение (которое, как я предполагаю, является обязательным), но все конфигурации для локального бэкенда, т. е. бэкенда, работающего на сервере, на котором находится config/varnishd, используют это .path
значение. Сегодня утром у меня возникла проблема с одним из серверов Varnish, по сути, сокет, на который ссылается , .path
не существовал, и поэтому он не запускался. Я пробовал разные способы восстановить работу сокета, но после того, как ни один из них не сработал, я переключил конфигурацию Varnish на использование этого .backend
значения. Я вижу, что это преимущество, так как теперь я могу легко поддерживать централизованную конфигурацию Varnish, не беспокоясь о компиляции каждой конфигурации на основе каждого сервера (т. е. удаляя строку .host
из бэкенда, которая соответствует определенному серверу).
Есть ли существенные преимущества от использования сокета для подключения к локальному кластеру Varnish (использование Hitch для завершения SSL, если это имеет значение)? Если все равно, я считаю, что использование .host
значения является лучшим вариантом, поскольку оно значительно упрощает отправку обновлений конфигурации.
решение1
Использование .path
сокетов домена Unix намного быстрее, чем использование .host
и .port
для соединений TCP/IP.
Если пропускная способность важна, используйте Unix Domain Sockets, так как вы получите более высокую пропускную способность (>100 Гбит/с по TLS).
Если высокая пропускная способность не так важна, можно использовать TCP/IP, который не требует наличия UDS.
Для UDS разрешения имеют значение, поэтому убедитесь, что и Varnish, и Hitch имеют необходимые разрешения для доступа к сокету. Varnish создаст сокет, а Hitch будет его использовать.