У меня есть настройка varnsih на моем RHEL6.x. В то время как varnish, varnishlog и varnishstats показывают правильные данные, varnisncsa не регистрирует никаких данных даже при запуске без определенных опций. Я завершил весь процесс и убедился, что они читают правильный файл _.vsm. что может происходить, что заставляет varnishncsa выдавать пустой результат?
Мой файл / etc / sysconfig / varnishncsa выглядит следующим образом
#NCSA log format, to be used by HTTP log analyzers
VARNISHNCSA_ENABLED=yes
# Include log entries which result from communication with a backend server.
LOG_BACKEND=no
# Include log entries which result from communication with a client.
LOG_CLIENT=yes
#extra options to varnishncsa
DAEMON_OPTS="$DAEMON_OPTS -F '%{Host}i %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\"'"
Вы используете Varnish как "прозрачный прокси" с "возврат (труба)"?
В том случае, если вы используете возврат (труба) придется изменить его на возврат (пройти).
Из https://www.varnish-cache.org/docs/2.1/tutorial/vcl.html
проходить
Когда вы вернетесь, передайте запрос и последующий ответ будут переданы на внутренний сервер и от него. Он не будет кэширован. pass может быть возвращен из vcl_recv
труба
Pipe также может быть возвращен из vcl_recv. Pipe закорачивает клиентские и бэкэнд-соединения, а Varnish просто сидит и перетасовывает байты взад и вперед. Varnish не будет смотреть на данные, отправляемые туда и обратно, поэтому ваши журналы будут неполными. Остерегайтесь того, что с HTTP 1.1 клиент может отправлять несколько запросов по одному и тому же соединению, поэтому вам следует указать Varnish добавить канал заголовка «Connection: close» перед фактическим возвратом.