Заголовки клиентов с PHP и лаком - PullRequest
3 голосов
/ 19 января 2012

В настоящее время я работаю над настройкой Varnish (v3), но мне было интересно, есть ли у кого-нибудь какие-либо советы по поводу следующего.

Я пытаюсь использовать функцию Header () в PHP для установки собственного заголовка, например, Test: CustomHeader. Конечная цель - предоставить Varnish возможность обслуживать кэшированные страницы, ЕСЛИ браузер в этом случае не добавил что-то в корзину для покупок. Я думал, что в моем конфигурационном файле VCL я могу сделать что-то вроде:

if (bereq.http.Test ~ "CustomHeader") {
    set beresp.ttl = 0s;
    return (hit_for_pass);
}

Однако, это всегда оценивается как false \ no match. Если я установлю его на

if (bereq.http.Test != "CustomHeader") {
    set beresp.ttl = 0s;
    return (hit_for_pass);
}

Затем всегда срабатывает hit_for_pass, что наводит меня на мысль, что с настройкой заголовка что-то не так. Я подумал, что это может быть из-за того, что заголовок PHP не будет установлен из-за всей цели кэша, но изучение заголовков в varnishlog НЕ показывает, что заголовок клиента появляется, что вызывает недоумение! Кроме того, доступ к рассматриваемой странице всегда приводит к попаданию в кэш. У кого-нибудь есть какие-либо советы \ советы по поводу такого рода манипуляций с заголовками в Varnish? Большое спасибо -B

1 Ответ

2 голосов
/ 19 января 2012

Использование пользовательских заголовков для чего-то подобного - плохая идея. Многие прокси будут лишать заголовки, которые они не распознают, поэтому вы не сможете полагаться на это, даже если вы работаете так, как хотите.

Для этого и созданы файлы cookie - используйте их вместо этого.

...