Varnish Cache służy jako akcelerator dla aplikacji webowych. Wielokrotnie przyśpiesza działanie stron WWW, jednocześnie zmniejszając generowane przez nie obciążenie.
W typowym środowisku każde żądanie przechodzi przez szereg etapów obsługi. Zaczyna się od utworzenia nowego procesu do obsługi żądania, za pomocą którego wykonywany jest odczyt danych z dysku i uruchomienie interpretera, który te dane przetwarza. Proces wykonywania kodu pobranego z dysku może wymagać podjęcia kolejnej pracy – generowania zapytań do baz danych, uruchamiania kolejnych skryptów czy odczytywania informacji z większej liczby plików.
Biorąc pod uwagę fakt, że wiele żądań jest niepowtarzalnych, serwer za każdym razem wykonuje cały proces od początku. Przy dużej liczbie żądań, serwer najczęściej staje się przeciążony i wówczas pojawiają się problemy z szybkością działania stron WWW.
Przy stosowaniu mechanizmu cache’owania wszystkie żądania pobierane są przez Varnish, a nie bezpośrednio przez serwer. Varnish sprawdza, co jest wymagane w danym żądaniu i przekazuje odpowiedni wniosek do serwera webowego. Serwer wykonuje swoją standardową pracę i przekazuje odpowiedź do Varnisha, a ten dalej do przeglądarki użytkownika.
Varnish ma możliwość przechowywania w swojej pamięci podręcznej odpowiedzi, jakie otrzymuje od serwera webowego, aby skorzystać z nich w przyszłości. Dzięki temu, gdy pojawi się kolejne żądanie, które wcześniej zostało obsłużone przez Varnisha, odpowiedź wyśle on ze swojej pamięci, nie obciążając tym samym serwera. Takie działania sprawia, że czas oczekiwania na stronę WWW jest znacząco krótszy, a do tego serwer może obsłużyć więcej żądań.