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