Как записать имя сервера, который ответил на запрос
Я использую varnishncsa для регистрации запросов, которые занимают много времени, чтобы ответить на моих внутренних серверах, используя следующую команду:
varnishncsa -F '%t "%r" %s %T' | awk '$7 > 10 {print}'
Я пытался добавить информацию об имени бэкэнда, но это не отображается в выводе varnishncsa:
sub vcl_backend_response {
std.log("backend_name:" + beresp.backend.name);
}
что я делаю не так?
1 ответ
Решение
Это не работает для вас, потому что varnishncsa
по умолчанию использует режим "клиент". Включите его используя -b
переключатель.
Впоследствии это будет работать:
varnishncsa -b -F '%t "%r" %s %T %{VCL_Log:backend_name}x' | awk '$7 > 10 {print}'
Возможно, вы захотите проверить полное объяснение, которое включает дополнительную оптимизацию для запроса медленных запросов бэкэнда.