Varnish Cache är en högpresterande HTTP-accelerator och omvänd proxy som används i stor utsträckning för att snabba upp webbapplikationer genom att cachelagra innehåll. En av de kraftfulla funktionerna hos Varnish är dess Varnish Configuration Language (VCL), som möjliggör finkornig kontroll över hur Varnish hanterar inkommande förfrågningar och utgående svar. I det här blogginlägget kommer vi att utforska vad Varnish VCL URL-omskrivning är, hur det fungerar och varför det är användbart, särskilt ur en Varnish-leverantörs perspektiv.
Förstå Varnish VCL URL Rewriting
Omskrivning av URL i Varnish innebär att modifiera de inkommande eller utgående URL:erna baserat på specifika regler definierade i VCL. Detta kan göras av olika anledningar, som att omdirigera gamla webbadresser till nya, maskera den verkliga platsen för resurser eller lägga till eller ta bort frågeparametrar.
Hur VCL fungerar
Innan du går in i URL-omskrivning är det viktigt att förstå den grundläggande strukturen för VCL. VCL består av subrutiner som exekveras i olika stadier av förfrågnings- och svarslivscykeln. De vanligaste subrutinerna för URL-omskrivning ärvcl_recvochvcl_backend_fetch.
vcl_recv: Denna subrutin exekveras när Varnish tar emot en klientförfrågan. Det är ett utmärkt ställe att utföra inledande kontroller och modifieringar av begäran, inklusive omskrivning av URL.vcl_backend_fetch: Denna subrutin exekveras innan Varnish skickar en begäran till backend-servern. Det låter dig ändra förfrågan som kommer att skickas till backend.
Exempel på grundläggande URL-omskrivning
Låt oss titta på några enkla exempel på URL-omskrivning i VCL.
Exempel 1: Omdirigera en gammal URL till en ny
sub vcl_recv { if (req.url == "/old-page.html") { return (synth(301, "https://example.com/new-page.html")); } }
I det här exemplet, om en klient begär webbadressen/gammal sida.html, kommer Varnish omedelbart att returnera en 301-omdirigering tillhttps://example.com/ny-sida.html.
Exempel 2: Lägga till en frågeparameter
sub vcl_recv { if (req.url ~ "^/products/") { set req.url = req.url + "?utm_source=lack"; } }
Denna kod kontrollerar om den begärda webbadressen börjar med/produkter/. Om den gör det lägger den till frågeparameternutm_source=lacktill URL:en.
Varför URL-omskrivning i lack är användbart
SEO-fördelar
Sökmotorer använder webbadresser för att indexera och rangordna webbsidor. Genom att använda Varnish VCL för att skriva om webbadresser kan du säkerställa att din webbplats har rena, användarvänliga och SEO-vänliga webbadresser. Du kan till exempel omdirigera gamla webbadresser som har ändrats till de nya, vilket hjälper sökmotorer att uppdatera sina index och behålla sidans rankning.
Äldre systemkompatibilitet
Om du migrerar från ett gammalt system till ett nytt kan det finnas många befintliga webbadresser som måste omdirigeras till det nya systemet. Varnish VCL kan hantera dessa omdirigeringar utan att lägga någon extra belastning på backend-servrarna.
Säkerhet och integritet
Omskrivning av URL kan också användas för säkerhets- och integritetssyften. Du kan till exempel maskera den verkliga platsen för känsliga resurser genom att skriva om webbadresserna. Detta gör det svårare för angripare att gissa den faktiska platsen för resurserna.
Avancerade tekniker för omskrivning av URL
Reguljära uttryck
Reguljära uttryck är ett kraftfullt verktyg för att skriva om URL i Varnish. De låter dig matcha komplexa mönster i webbadresser och utföra villkorlig omskrivning.
Exempel: Omskrivning av webbadresser baserat på ett mönster


sub vcl_recv { if (req.url ~ "^/category/([az]+)/([0-9]+)$") { set req.url = "/products/" + regsub(req.url, "^/category/([az]+)/([0-9]+)$", "\1-\2"); } }
I det här exemplet, om den begärda webbadressen matchar mönstret/kategori/[bokstäver]/[siffror], skriver den om URL:en till/produkter/[bokstäver]-[siffror].
Flera omskrivningar
Du kan utföra flera omskrivningar i en enda subrutin. Detta gör att du kan bygga komplexa omskrivningsregler.
sub vcl_recv { if (req.url ~ "^/old/") { set req.url = regsub(req.url, "^/old/", "/new/"); } if (req.url ~ "?old_param=1") { set req.url = regsub(req.url, "?old_param=1", "?new_param=2"); } }
Denna kod ersätter först/gammal/med/ny/i URL:en och ersätter sedan frågeparameternold_param=1mednew_param=2.
Våra lackprodukter och URL-omskrivning
Som leverantör av Varnish erbjuder vi en rad produkter och tjänster relaterade till Varnish. Våra lacker, som t.exVattenbaserad matt topplack,Vattenbaserad klarlackslack, ochVattenbaserad polyuretanglans, är utformade för att möta våra kunders olika behov.
När det gäller omskrivning av Varnish VCL-URL kan vårt team av experter hjälpa dig att konfigurera och optimera din Varnish-inställning. Vi förstår vikten av URL-omskrivning för SEO, äldre systemkompatibilitet och säkerhet. Oavsett om du behöver enkla omdirigeringar eller komplexa omskrivningsregler har vi kunskapen och erfarenheten för att få jobbet gjort.
Kontakta oss för Varnish URL Rewriting Solutions
Om du är intresserad av att lära dig mer om omskrivning av Varnish VCL URL eller behöver hjälp med din Varnish-installation, vill vi gärna höra från dig. Vårt team av experter är redo att hjälpa dig med alla frågor eller funderingar du kan ha. Kontakta oss idag för att starta en diskussion om hur vi kan hjälpa dig att optimera din webbplats prestanda med Varnish.
Referenser
- Varnish-dokumentation: Den officiella Varnish-dokumentationen ger djupgående information om VCL och URL-omskrivning.
- SEO Best Practices: Olika onlineresurser diskuterar vikten av URL-struktur för SEO.
- Säkerhetsguider för webbapplikationer: Dessa guider ger insikter i hur du använder URL-omskrivning i säkerhetssyfte.
