Identyfikacja serwerów varnishowych
Napisał: Patryk Krawaczyński
06/08/2012 w Administracja Brak komentarzy. (artykuł nr 362, ilość słów: 300)
P
rzy dużej liczbie serwerów WWW zajmujących się akceleracją HTTP, na który kierowany jest ruch sieciowy – trudno czasami namierzyć, który serwer powoduje jakieś problemy. Z pomocą przychodzi parametr identity (-i), który pozwala ustawić tożsamość serwera i udostępnić tą informację w konfiguracji serwera varnish za pomocą opcji server.identity.
Na przykład – informacje o nazwie serwera tj. hostname chcemy przekazywać w nagłówku HTTP, aby za pomocą dodatku do przeglądarki Firefox dowiedzieć się, który serwer odpowiedział nam jako klientowi. W tym celu w pliku konfiguracyjnym varnish’a odpowiedzialnym za jego start (/etc/sysconfig/varnish) wystarczy dopisać, co będzie identyfikowało nasz serwer:
WHOIAM=`hostname -s`
DAEMON_OPTS="-a ${VARNISH_LISTEN_ADDRESS}:${VARNISH_LISTEN_PORT} \
-f ${VARNISH_VCL_CONF} \
-T ${VARNISH_ADMIN_LISTEN_ADDRESS}:${VARNISH_ADMIN_LISTEN_PORT} \
-t ${VARNISH_TTL} \
-p thread_pools=4 \
-w ${VARNISH_MIN_THREADS},${VARNISH_MAX_THREADS},${VARNISH_THREAD_TIMEOUT} \
-u varnish -g varnish \
-S ${VARNISH_SECRET_FILE} \
-s ${VARNISH_STORAGE} \
-i ${WHOIAM}"
I dodać tą informację do nagłówka HTTP wysyłanym do klienta, czyli w pliku /etc/varnish/default.vcl w sekcji sub vcl_deliver dodać kod:
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT from " + server.identity;
} else {
set resp.http.X-Cache = "MISS from " + server.identity;
}
Więcej informacji: Varnish

