Hur använder man Varnish med Ruby on Rails-applikationer?

Nov 13, 2025

Lämna ett meddelande

Alice Smith
Alice Smith
Alice är senior FoU -ingenjör på Jiangmen Chuangda New Material Technology Co., Ltd. Med över 8 års erfarenhet inom den kemiska industrin är hon specialiserad på utveckling av vattenburna hartskemikalier. Hennes innovativa arbete har bidragit avsevärt till företagets produktlinjeutvidgning och tekniska utveckling.

Hej där! Om du kör en Ruby on Rails-applikation och vill förbättra dess prestanda, har du kommit till rätt ställe. Jag kommer från en Varnish-leverantör och jag är här för att guida dig genom hur du använder Varnish med dina Ruby on Rails-appar.

Först och främst, låt oss prata om vad Varnish är. Varnish är en högpresterande HTTP-accelerator. Enkelt uttryckt är det som en supersnabb buffert mellan din webbserver och dina användare. Den lagrar kopior av webbsidor i minnet, så när en användare begär en sida kan Varnish servera den mycket snabbare än din Rails-app skulle göra om den var tvungen att generera sidan från början varje gång.

Varför använda lack med Ruby on Rails?

Ruby on Rails är ett fantastiskt ramverk för att bygga webbapplikationer. Den har massor av funktioner och gör utvecklingen till en vind. Men en av dess nackdelar är att den kan vara lite långsam när det gäller att servera statiskt innehåll och hantera hög trafikbelastning. Det är där Varnish kommer in.

Water Based Polyurethane Gloss2 Matte Varnish

Genom att använda Varnish kan du ladda ner mycket av arbetet från din Rails-applikation. Varnish kan cachelagra sidor, bilder och andra statiska tillgångar, vilket minskar belastningen på din Rails-server. Det betyder att din app kan hantera mer trafik utan att krascha, och dina användare kommer att uppleva snabbare laddningstider.

Installation av lack

Det första steget är att installera Varnish på din server. Installationsprocessen kan variera beroende på ditt operativsystem. Om du till exempel använder Ubuntu kan du använda följande kommandon:

sudo apt - uppdatera sudo apt - installera lack

Om du använder ett annat system som CentOS, måste du använda andra kommandon. Du kan kontrollera den officiella Varnish-dokumentationen för detaljerade installationsinstruktioner för ditt specifika operativsystem.

Konfigurera lack för Ruby on Rails

När du har installerat Varnish är det dags att konfigurera det för att fungera med din Ruby on Rails-applikation. Varnish använder en konfigurationsfil som heterdefault.vcl(Färnish Configuration Language).

Det första du behöver göra är att berätta för Varnish var din Rails-applikation körs. Som standard körs Rails på port 3000. Du kan lägga till följande kod till dindefault.vclfil:

backend default { .host = "127.0.0.1"; .port = "3000"; }

Detta talar om för Varnish att din Rails-applikation körs på den lokala maskinen (127.0.0.1) på port 3000.

Därefter måste du konfigurera Varnish för att cachelagra rätt innehåll. Du vill inte cachelagra sidor som är anpassade för varje användare, som användarinstrumentpaneler eller kundvagnar. Du kan använda Varnishs inbyggda regler för att kontrollera vad som cachelagras.

Här är ett exempel på hur du kan cachelagra statiska sidor:

sub vcl_recv { if (req.url ~ "^/(images|javascripts|stylesheets)/") { return (hash); } if (req.method == "GET" || req.method == "HEAD") { return (hash); } else { return (pass); } }

Den här koden talar om för Varnish att cacheförfrågningar för bilder, JavaScript-filer och stilmallar. Den cachar också GET- och HEAD-förfrågningar, som vanligtvis används för att hämta sidor. Andra typer av förfrågningar, som POST-förfrågningar (används för formulärinlämningar), skickas vidare till Rails-applikationen utan att cachelagras.

Testa din lackinställning

När du har konfigurerat Varnish är det dags att testa det. Starta först om Varnish för att tillämpa den nya konfigurationen:

sudo systemctl starta om lack

Sedan kan du använda ett verktyg somringlaför att testa om Varnish fungerar korrekt. Försök att komma åt din Rails-applikation via Varnish. Som standard lyssnar Varnish på port 6081. Så du kan använda följande kommando:

curl http://localhost:6081

Om allt är korrekt inställt bör du se utdata från din Rails-applikation. Du kan också kontrollera Varnish-loggarna för att se om förfrågningar cachelagras eller skickas igenom.

Avancerad lackkonfiguration för skenor

Det finns några avancerade konfigurationer du kan göra för att få ut det mesta av Varnish med din Ruby on Rails-applikation.

Cache-invalidering

En av utmaningarna med cachelagring är att veta när cachen ska ogiltigförklaras. Om en användare till exempel uppdaterar sin profilinformation i din Rails-app måste du se till att den cachade sidan för den användarens profil är uppdaterad.

Du kan använda Varnish'sförbjudafunktion för att ogiltigförklara cachen. I din Rails-applikation kan du skicka en särskild begäran till Varnish om att förbjuda en specifik URL eller en uppsättning URL:er. Här är ett exempel på hur du kan göra detta i Rails:

kräver 'net/http' uri = URI('http://localhost:6082/ban') req = Net::HTTP::Post.new(uri) req['X-Ban-Regex'] = '^/users/1' res = Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(req) slut

Den här koden skickar en förbudsbegäran till Varnish och säger att den ska ogiltigförklara alla cachade sidor som matchar det reguljära uttrycket^/users/1.

Använder Varnish med HTTPS

Om din Rails-applikation använder HTTPS måste du konfigurera Varnish för att fungera med den. Du kan använda en omvänd proxy som Nginx eller Apache framför Varnish för att hantera SSL-uppsägningen.

Här är ett enkelt exempel på hur du kan konfigurera Nginx att arbeta med Varnish:

server { lyssna 443 ssl; servernamn dindomän.com; ssl_certificate /sökväg/till/ditt/cert.pem; ssl_certifikatnyckel /sökväg/till/din/nyckel.pem; plats / { proxy_pass http://127.0.0.1:6081; proxy_set_header Värd $host; proxy_set_header X - Real - IP $remote_addr; proxy_set_header X - Vidarebefordrad - För $proxy_add_x_forwarded_for; } }

Den här konfigurationen säger åt Nginx att lyssna på port 443 (standard HTTPS-porten) och skicka förfrågningar till Varnish som körs på port 6081.

Våra lackprodukter

Som leverantör av lack erbjuder vi ett sortiment av högkvalitativa lackprodukter. Till exempel har viVattenbaserad matt topplack, vilket ger en slät och elegant finish. VårVattenbaserad polyuretanglansger en glänsande och hållbar yta. Och denVattenbaserad klarlackslackär perfekt för att skydda dina ytor samtidigt som de behåller deras naturliga utseende.

Kontakta oss för köp

Om du är intresserad av att använda våra Varnish-produkter för att förbättra prestandan för dina Ruby on Rails-applikationer, vill vi gärna höra från dig. Oavsett om du är ett litet nystartat företag eller ett stort företag kan vårt team av experter hjälpa dig att hitta rätt lacklösning för dina behov. Kontakta oss för en detaljerad konsultation och låt oss börja optimera din applikations prestanda tillsammans.

Referenser

  • Lack officiell dokumentation
  • Ruby on Rails officiella dokumentation
  • Nginx officiella dokumentation
Skicka förfrågan
Kontakta ossOm det har någon fråga

Du kan antingen kontakta oss via telefon, e -post eller online -formulär nedan. Vår specialist kommer att kontakta dig inom kort.

Kontakta nu!