Jak napisać Varnish vcl?

Jan 13, 2026

Zostaw wiadomość

Grace Taylor
Grace Taylor
Grace jest niezależnym recenzentem produktów chemicznych. Często ocenia surowce chemiczne Jiangmen Chuangda New Material Technology Co., Ltd. Jej cel i profesjonalne recenzje dostarczyły cennych referencji dla wielu klientów w branży.

Hej tam! Jako dostawca lakieru widziałem na własne oczy, jak ważne jest pisanie efektywnego kodu w języku konfiguracji lakieru (VCL). W tym poście na blogu podzielę się kilkoma wskazówkami i trikami, jak pisać VCL jak profesjonalista.

Zrozumienie podstaw VCL

Na początek porozmawiajmy o tym, czym jest VCL. Varnish to akcelerator aplikacji internetowych (znany również jako pamięć podręczna), który znajduje się przed Twoim serwerem WWW. VCL to język programowania używany do konfiguracji Varnish. Pozwala kontrolować zachowanie Varnish, na przykład to, jakie żądania buforowania, jak długo je buforować i co zrobić, gdy nastąpi brak pamięci podręcznej.

Kod VCL jest podzielony na podprogramy, które działają jak funkcje w innych językach programowania. Każdy podprogram ma określony cel, a Varnish wywołuje te podprogramy na różnych etapach procesu żądania i odpowiedzi. Niektóre z najważniejszych podprogramów obejmująvcl_recv,vcl_hash,vcl_backend_fetch, Ivcl_dostarczanie.

Zaczynając od prostej konfiguracji VCL

Kiedy dopiero zaczynasz przygodę z VCL, dobrze jest zacząć od prostej konfiguracji. Oto przykład podstawowego pliku VCL:

3 Water Based Matte Top Coat LeatherWater Based Matte Top Coat

vcl 4.0; domyślny backend { .host = "127.0.0.1"; .port = "8080"; } sub vcl_recv { powrót (przejście); } sub vcl_backend_response { return (dostarczenie); } sub vcl_deliver { powrót (dostarczenie); }

W tym przykładzie definiujemy serwer backendowy pod adresem127.0.0.1:8080. Thevcl_recvpodprogram jest wywoływany, gdy Varnish otrzymuje żądanie klienta. W takim przypadku po prostu przekazujemy żądanie do serwera zaplecza bez buforowania go. Thevcl_backend_responsepodprogram jest wywoływany, gdy Varnish otrzymuje odpowiedź z serwera zaplecza, a my dostarczamy odpowiedź do klienta. Thevcl_dostarczaniepodprogram jest również używany do dostarczenia odpowiedzi klientowi.

Strategie buforowania

Jednym z głównych powodów używania Varnish jest buforowanie zawartości i zmniejszenie obciążenia serwerów zaplecza. Istnieje kilka strategii buforowania, których można użyć w VCL, w zależności od potrzeb aplikacji.

Buforowanie treści statycznych

Treść statyczna, taka jak obrazy, pliki CSS i pliki JavaScript, jest doskonałym kandydatem do buforowania. Możesz skonfigurować Varnish tak, aby buforował te pliki przez długi czas. Oto przykład buforowania zawartości statycznej:

sub vcl_recv { if (req.url ~ "\.(jpg|jpeg|png|gif|css|js)$") { return (hash); } powrót (przejście); }

W tym przykładzie, jeśli adres URL żądania kończy się na.jpg,.jpeg,PNG,.gif,.css, Lub.js, wysyłamy żądanie dovcl_hashpodprogram, który ma być buforowany. W przeciwnym razie przekazujemy żądanie do serwera backendowego.

Buforowanie zawartości dynamicznej

Buforowanie zawartości dynamicznej może być nieco trudniejsze, ponieważ należy się upewnić, że zawartość w pamięci podręcznej jest nadal ważna. Do zarządzania pamięcią podręczną zawartości dynamicznej można używać technik takich jak znaczniki pamięci podręcznej i klucze zastępcze. Oto przykład użycia tagów pamięci podręcznej:

sub vcl_backend_response { if (beresp.http.X-Cache-Tag) { set beresp.http.X-Cache-Tags = beresp.http.X-Cache-Tag; } zwrócić (dostarczyć); } sub vcl_purge { if (req.http.X-Cache-Tags) { ban("obj.http.X-Cache-Tags ~ " + req.http.X-Cache-Tags); } return (synth(200, "Oczyszczony")); }

W tym przykładzie, gdy serwer zaplecza ustawia plikTag X-Cachenagłówek, kopiujemy go do plikuTagi X-Cachenagłówek w odpowiedzi Varnish. Gdy nadejdzie żądanie oczyszczenia z plikiemTagi X-Cachenagłówku, blokujemy wszystkie obiekty pasujące do tagów pamięci podręcznej.

Obsługa chybień w pamięci podręcznej

W przypadku braku pamięci podręcznej Varnish musi pobrać zawartość z serwera zaplecza. Możesz skorzystać zvcl_backend_fetchpodprogram kontrolujący sposób, w jaki Varnish pobiera zawartość. Oto przykład:

sub vcl_backend_fetch { set bereq.http.User-Agent = "Pamięć podręczna lakieru"; zwrócić (pobrać); }

W tym przykładzie ustawiliśmyAgent użytkownikanagłówek w żądaniu kierowanym do serwera zaplecza do „Varnish Cache” przed pobraniem zawartości.

Korzystanie z zaawansowanych funkcji VCL

Varnish ma kilka zaawansowanych funkcji, których można użyć do dostosowania jego zachowania.

Manipulacja nagłówkami HTTP

W Varnish możesz manipulować nagłówkami HTTP, aby dodawać, usuwać lub modyfikować nagłówki. Oto przykład dodania niestandardowego nagłówka:

sub vcl_deliver { set resp.http.X-Custom-Header = "To jest niestandardowy nagłówek"; zwrócić (dostarczyć); }

W tym przykładzie dodajemy niestandardowy nagłówek o nazwieNagłówek X-Customna odpowiedź przed dostarczeniem jej klientowi.

Logika warunkowa

Możesz używać logiki warunkowej w Varnish, aby podejmować decyzje na podstawie żądania lub odpowiedzi. Oto przykład użycia logiki warunkowej do przekierowywania żądań:

sub vcl_recv { if (req.url == "/stara-strona") { return (synth(301, "http://example.com/nowa-strona")); } powrót (przejście); }

W tym przykładzie, jeśli adres URL żądania to/stara-strona, wysyłamy przekierowanie 301 dohttp://example.com/nowa-strona.

Nasze produkty lakiernicze

Jako dostawca lakierów oferujemy szeroką gamę wysokiej jakości produktów lakierniczych. Sprawdź naszeLakier bezbarwny na bazie wody,Matowy lakier nawierzchniowy na bazie wody, IPołysk poliuretanu na bazie wody. Produkty te nadają się do różnych zastosowań i mogą zapewnić doskonałą ochronę i wykończenie.

Wniosek

Pisanie skutecznego kodu VCL wymaga czasu i praktyki, ale jest tego warte. Rozumiejąc podstawy VCL, stosując odpowiednie strategie buforowania i wykorzystując zaawansowane funkcje, możesz zoptymalizować wydajność swojej aplikacji internetowej i zmniejszyć obciążenie serwerów zaplecza.

Jeśli interesują Cię nasze produkty Lakiery lub potrzebujesz więcej informacji na temat konfiguracji VCL, skontaktuj się z nami w celu omówienia zakupu. Jesteśmy tutaj, aby pomóc Ci znaleźć najlepsze rozwiązania dla Twoich potrzeb.

Referencje

  • Dokumentacja lakieru
  • Różne zasoby internetowe dotyczące lakieru i buforowania sieciowego
Wyślij zapytanie
Skontaktuj się z namiJeśli masz jakieś pytanie

Możesz skontaktować się z nami przez telefon, e -mail lub formularz online poniżej. Nasz specjalista wkrótce się z Tobą skontaktuje.

Skontaktuj się teraz!