Это уродливо, но...
Я использовал это для устройства Roku с входом через веб-портал. Как всегда, YMMV.
Методы, которые я видел, оставляют вам 2 варианта. 1 заключается в том, чтобы записать все в один файл, а затем использовать лаклог для разбора журнала, чтобы увидеть только интересующий вас виртуальный хост. Подробнее об этом инструменте можно прочитать здесь-https://varnish-cache.org/docs/trunk/reference/varnishlog.html.
Чтобы разделить журналы на явные файлы, необходимо запустить несколько varnishncsa
демонов. Этот метод показан в этом блоге под названием:Как разделить журнал Varnish для виртуального хоста .
Например:
лак 3.xvarnishncsa -m "RxHeader:^Host: linuxaria.com$" -a -w /var/log/varnish/linuxaria.com.access_log -D
varnishncsa -m "RxHeader:^Host: linuxaria.org$" -a -w /var/log/varnish/linuxaria.org.access_log -D
лак 4.x varnishncsa -q "ReqHeader ~ '^Host:.*\.example1.com'"
varnishncsa -q "ReqHeader ~ '^Host:.*\.example2.com'"
Вам нужно настроить это как отдельные файлы модулей systemd, по одному на каждый виртуальный хост. ПРИМЕЧАНИЕ.:Этот метод также обсуждается в этой записи блога под названием :[tips]varnishncsa, сохраняющей раздельный журнал для каждого хоста .
Таким образом, для каждого юнит-файла, по 1 на виртуальный хост, вы должны добавить свою строку exec, например:
модульный файл #1ExecStart=/usr/bin/varnishncsa -q "ReqHeader ~ '^Host: somedomain1.com'" -D -a -w /var/log/varnish/somedomain1.log -P /run/varnishncsa/varnishncsa_vhost1.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'
модульный файл #2 ExecStart=/usr/bin/varnishncsa -q "ReqHeader ~ '^Host: somedomain2.com'" -D -a -w /var/log/varnish/somedomain2.log -P /run/varnishncsa/varnishncsa_vhost2.pid -F '%%{X-Forwarded-For}i %%l %%u %%t "%%r" %%s %%b "%%{Referer}i" "%%{User-agent}i"'