En omvänd proxy finns framför en webbserver och tar emot alla begäranden innan de når ursprungsservern. Det fungerar på samma sätt som en framåt-proxy, förutom att det i detta fall är webbservern som använder proxyn snarare än användaren eller klienten. Omvända proxyservrar används vanligtvis för att förstärka prestanda, säkerhet och tillförlitlighet hos webbservern.

Du kan exempelvis ha en icke-WordPress-webbplats som finns på example.com-domänen på Server A och ha dess blogg på WordPress-URL:en example.com/blog på Server B. Detta kan uppnås genom att du lägger till en omvänd proxy för den server som hostar din primära webbplats. Du kan konfigurera den omvända proxyn för att omdirigera begäranden till bloggen till en annan server (exempelvis en hanterad WordPress-host som Kinsta).

I den här artikeln får du lära dig grunderna när det gäller omvända proxyservrar. Dvs hur de fungerar, vad deras stora fördelar är, och hur du kan använda dem för att påskynda och säkra din WordPress-webbplats.

Är du nöjd? Vi kör igång!

Vad är en Omvänd Proxy?

För att förstå vad en omvänd proxyserver är, måste du först veta dess roll och bekanta dig med alla dess relaterade termer.

När du surfar på webben normalt genom att ange ett domännamn eller klicka på en länk, ansluter din webbläsare/enhet direkt till webbplatsens server och börjar ladda ner dess resurser.

Hur internet-surfning fungerar vanligtvis
Hur internet-surfning fungerar vanligtvis

Om du vill anonymisera din IP-adress för de webbplatser du besöker, kan du använda en proxyserver för att skicka alla dina förfrågningar till den först. Den vidarebefordrar dina förfrågningar till DNS-matcharen och hämtar sedan webbplatsens resurser från dess ursprungsserver.

Efteråt kommer den att vidarebefordra dessa resurser till din enhet. Detta kallas en framåt-proxy.

Så här fungerar en framåt-proxyserver
Så här fungerar en framåt-proxyserver

Du är helt dold från webbplatsen eftersom den tror att din begäran härstammar från framåt-proxyn.

Förutom att den förbättrar användarnas integritet, är en framåt-proxy främst till för att kringgå geografiska innehålls-begränsningar. Om du exempelvis vill titta på en video som är blockerad i din region kan du använda en framåtproxy med en IP-adress på vilken videon är tillgänglig för visning.

En framåt-proxy fungerar nästan på samma sätt som ett Virtual Private Network (VPN), men de är ändå olika tekniker med unika användningsområden (de kan dock överlappa varann ibland).

Omvänd ProxyServer jämfört med framåt-proxyserver

En omvänd proxyserver fungerar som en front för ursprungsservern för att upprätthålla anonymitet och förbättra säkerheten. En användare / klient kan använda en framåt-proxy för att uppnå samma sak. Detta säkerställer att ingen användare eller klient kommunicerar direkt med ursprungsservern.

Så här fungerar en omvänd proxyserver
Så här fungerar en omvänd proxyserver

Skillnaden mellan en framåt-proxy och en omvänd proxy är inte så stor, men de fungerar annorlunda.

Båda kan arbeta ihop eftersom det inte finns någon överlappning mellan deras funktion. Vanligtvis använder användare/klienter en framåt-proxy, medan ursprungsservrar använder en omvänd proxy.

Framåt Proxy vs Omvända Proxy-servrar
Framåt Proxy vs Omvända Proxy-servrar

Eftersom en server-admin kan styra hur den omvända proxyn fungerar, kan du använda den för att aktivera många användbara funktioner.

Vi kommer att lista alla dess fördelar senare i det här inlägget.

Varför ska man använda en Omvänd Proxy?

Många företag, särskilt stora företag, använder webbplatser som är skräddarsydda för sina unika behov och som inte körs på WordPress. Exempel på detta är bank- och försäkringswebbplatser.

I andra fall kan ett företag vara host för sin webbplats på en extern tjänst som inte tillåter dem att installera någon extern programvara (t.ex. WordPress). Vanligtvis, är dessa små till medelstora återförsäljare som tar hjälp av en e-handel-plattform såsom Shopify.

Eftersom WordPress har robusta CMS-funktioner, föredrar många företag, inklusive stora företag med skräddarsydda webbplatser, att hosta sina bloggar med hjälp av WordPress.

Ett sätt att komma runt detta problem är att installera WordPress på huvudwebbplatsens underdomän och strukturera navigeringsmenyerna så att användarna enkelt kan växla mellan huvudwebbplatsen och bloggen.

Eftersom underdomäner beter sig som unika domäner, kan detta påverka din webbplats SEO. Även om Google behandlar både underdomäner och underkataloger lika krävs det större ansträngning för att optimera en webbplats för rankning av sökmotorer om den finns på en underdomän än om den finns i en underkatalog.

Två tillvägagångssätt för att vara host för bloggar på en webbplats
Två tillvägagångssätt för att vara host för bloggar på en webbplats

Google har bekräftat att underdomäner och underkataloger behandlas lika, men vissa SEO-experter håller inte med om detta. Och även om det inte påverkar webbplatsens SEO, är en webbplats som är host i en underkatalog helt enkelt lättare att underhålla.

Det är därför du kan använda en omvänd proxy för att omdirigera förfrågningar till webbplatsens blogg som finns på en separat server. En bank kan exempelvis hosta sin huvudsakliga webbplats tryggt på sina servrar. De kan dock samtidigt vara host för sin WordPress-drivna blogg separat hos en hanterad WordPress host som Kinsta.

Ett exempel på ett mål för användning av omvänd proxy
Ett exempel på ett mål för användning av omvänd proxy

Att ena två olika platser under ett enda domännamn är en av de viktigaste fördelarna med att använda en omvänd proxy. Detta hjälper varumärken att hålla sina webbplatser organiserade, professionella och upprätthålla trovärdighet.

Fördelar med att använda en Omvänd Proxy

Förutom ovanstående användningsområden, kan omvända proxies även erbjuda många andra fördelar. I avsnittet nedan diskuteras några av dessa.

Nätverksbelastning

En enda ursprungsserver kan inte hantera all inkommande trafik för en webbplats med miljontals dagliga unika besökare. Om du har en sådan webbplats kan du fördela trafiken smart bland en pool med många servrar. Vanligtvis kommer alla servrar att hosta samma innehåll för att eliminera felpunkter, vilket gör webbplatsen mer tillförlitlig.

En omvänd proxy är ett bra sätt att uppnå detta eftersom en sådan kan ta emot den inkommande trafiken innan den når ursprungsservern. Om ursprungsservern är överbelastad eller misslyckas helt kan den distribuera trafiken till andra servrar utan att webbplats-prestandan påverkas.

En omvänd proxyserver kan även rikta inkommande begäranden mot flera servrar, där varje server utför en viss funktion som den är optimerad för. Den omvända proxyn kan sedan samla in svar från alla servrarna och leverera dem till klienten.

Eftersom vi främst använder de populära omvända proxyservrarna för laddnings-balansering, kallas de även Laddnings-utjämnare.

GSLB (Global Server Load Balancing)

GSLB är en avancerad metod för laddnings-balansering. Den används för att distribuera webbplatstrafik till många servrar som är placerade strategiskt runt om i världen. Detta görs vanligtvis via anycast routing-teknik, där den omvända proxyn plockar servernoden baserat på den snabbaste restiden mellan klienten och servern.

GSLB ökar inte bara webbplatsens tillförlitlighet och säkerhet avsevärt. Det minskar även fördröjnings- och laddningstiderna, vilket förbättrar användarupplevelsen. Du kan använda GSLB med andra tekniker för nätverksoptimering som Spoon Feeding för att frigöra ursprungsservrarnas beräkningsresurser ännu mer.

Även om du kan ställa in GSLB manuellt på din server, görs detta oftast av dedikerade CDN:s som Cloudflare och KeyCDN (som också driver Kinsta-CDN). Kinsta betjänar alla webbplatser som hostas genom en Laddnings-utjämnare som drivs av Google Cloud´s plattform.

Förbättrad säkerhet

Omvända proxyservrar kan dölja IP-adressen och andra uppgifter hos ursprungs- servrarna. Således kan din webbplats ursprungs-server behålla sin anonymitet bättre och få en betydligt bättre säkerhet.

Eftersom trafiken kommer att nå den omvända proxyn innan den når huvudservern, kommer alla angripare eller hackers att få det svårare att attackera din webbplats med säkerhetshot såsom DDoS-attacker.

Du kan använda en strikt brandvägg för att göra den omvända proxyn ännu mer motståndskraftig mot vanliga cyberattacker. Utan en omvänd proxy, är det svårt att ta bort skadlig kod eller att starta takedowns.

En omvänd proxy som HAProxy kan lägga till grundläggande autentisering för HTTP-åtkomst till en webbserver som inte har detta aktiverat. Du kan även använda en omvänd proxy för att lägga till centraliserad autentisering för olika typer av begäranden.

Kraftfull Cachelagring

Du kan använda en omvänd proxy för webbaccelerations-ändamål genom att cachelagra både statiskt och dynamiskt innehåll. Detta kan minska belastningen på ursprungsservern, vilket resulterar i en snabbare webbplats.

Om din ursprungs-server exempelvis är i USA och besöks av en användare från Europa, då kan du betjäna en cachelagrad version av din webbplats från en omvänd proxyserver i Europa. Eftersom den omvända proxyn är närmare användaren än ursprungsservern, kommer laddningstiden för webbplatsen att minska, vilket gör att den får bättre prestanda.

VarniVarnish och Nginx FastCGI är två bra exempel på omvända proxyservrar som används för cachelagring av webbinnehåll.

Om din webbplats hostas av Kinsta så behöver du inte oroa dig för cachelagring. Kinsta tar nämligen hand om allt cache-arbete åt dig (inklusive att erbjuda avancerade funktioner som Edge Caching).

Överlägsen Komprimering

Serversvar använder mycket bandbredd. Att komprimera serversvaren (t.ex. med gzip) innan du skickar dem till klienten kan minska mängden bandbredd som krävs, vilket påskyndar serversvaren över nätverket.

En omvänd proxy är idealisk för att komprimera serversvar eftersom den sitter mellan ursprungsservrarna och klienten.

Optimerad SSL-kryptering

Kryptering och dekryptering av SSL/TLS-begäranden för varje klient kan ta mycket kraft från ursprungsservern. En omvänd proxy kan ta sig an den här uppgiften för att frigöra ursprungsserverns resurser för andra viktiga uppgifter, som att betjäna innehåll.

En annan fördel med avlastning av SSL/TSL-kryptering och dekryptering är att minska svarstiden för klienter som befinner sig långt från ursprungsservern.

Du kan även välja en omvänd proxy med specialiserad SSL / TLS accelerations- hårdvara för att optimera denna uppgift ytterligare. En sådan omvänd proxy kallas SSL / TLS termination-proxy. Vissa servrar som exempelvis Varnish stöder inte SSL / TSL-protokoll, så en SSL / TSL termination-proxy kan bidra till att säkra den trafik som passerar.

Bättre A/B-testning

De flesta A/B-testverktyg kräver att du använder externa JavaScript-bibliotek för att läsa in deras funktioner. Men att läsa in skript från tredje part kan sakta ner dina sidinläsningstider och skapa en dålig upplevelse för användarna.

Du kan istället använda en omvänd proxy för att skapa två separata flöden på själva servernivån. Du kan exempelvis använda Nginx’s split_clients eller sticky route– metoder för att styra omdirigering av trafiken.

Du kan studera själv på Nginx och freeCodeCamp för att lära dig mer om hur du utför A/B-testning med en omvänd proxy.

Övervakning och Loggnings-trafik

En omvänd proxy fångar alla förfrågningar som passerar. Därav kan du använda detta som ett centralt nav för att övervaka och logga trafik. Även om du använder flera webbservrar för att hosta alla din webbplatsers komponenter, kan en omvänd proxy göra det lättare att övervaka alla inkommande och utgående data från din webbplats.

De mest populära Omvända Proxies

Enligt W3Techs, använder nästan 83% av webbplatserna inte omvänd proxy.

Statistik för omvända proxyservrar som används av webbplatser
Statistik för omvända proxyservrar som används av webbplatser (Källa: W3Techs.com)

Av de 17% som använder en omvänd proxy (som anges ovan), kommer du att märka att de flesta av dem är CDNs. Detta beror på att de flesta omvända proxies döljer sin existens som standard som en säkerhetsåtgärd. Därför kan du inte lita på webbplats övervakningstjänster som W3Techs när det gäller att hitta vilka omvända proxyservrar som är mest populära.

Om vi utgår från vår forskning och erfarenhet, är dagens mest populära omvända proxyservrar:

Nginx

Nginx är en webbserver med öppen källkod som även kan fungera som en omvänd proxy. Bortsett från att den kan användas för att hosta webbplatser, är den även en av de mest använda omvända proxies och lösningar för laddnings-utjämning. Enligt Netcraft, använde över 479 miljoner webbservrar Nginx i december 2019, vilket gör den ledande inom webbserver-marknadsandelar.

Webbserver-marknadsandelar för alla sajter
Webbserver-marknadsandelar för alla sajter (Källa: Netcraft)

Nginx erbjuder alla de omvända proxy-fördelarna som diskuterats ovan, plus mer. Den förbättrar webbprestanda, säkerhet, tillförlitlighet och skalbarhet. Du kan konfigurera Nginx med hjälp av dess konfigurationsfil, som också är hot- omladdningsbar. På Kinsta är Nginx omvänd proxy ett av flera premiumtillägg som du kan använda.

Men du kan även använda Nginx Plus, ett kommersiellt erbjudande, för att få tillgång till API-baserade konfigurationsalternativ och andra funktioner som passar för stora företagswebbplatser.

Kinsta driver alla sina webbplatser med Nginx och har rankats i Review Signal’s Top Tier hosting-leverantörs-status i varje kategori som den har tävlat i. Några andra stora företag som använder Nginx är MaxCDN, Cloudflare och Netflix.

Att ställa in Nginx som en grundläggande omvänd proxy är enkelt. Nginx ger dig även olika direktiv för att anpassa din servers omvända proxy enligt dina egna krav. Vi diskuterar hur man gör detta i ett senare avsnitt. Om du är kinsta-kund kommer du även att få lära dig att använda en omvänd proxy för webbplatser som hostas av Kinsta.

Varnish

Varnish är en HTTP-omvänd proxy med öppen källkod som har en inbyggd cachemotor. Den är främst utformad för webbplatser med hög trafik som har dynamiskt innehåll. Du kan även använda Varnish som laddnings-utjämnare, en brandvägg för webbappar (WAF) och en autentiserings- och auktoriseringsserver.

Varnish fungerar på alla moderna versioner av Linux och FreeBSD, och används främst som en front för Nginx eller Apache -webbservrar. Med Varnish kraftfulla och mycket flexibla VCL (Varnish Configuration Language) kan du definiera olika funktioner som att hantera HTTP-begäranden, cachelagring och anslutning till en eller flera webbservrar.

Av denna anledning använder många CDNs Varnish som sin viktigaste komponent för att leverera innehåll snabbt.

Varnish har även stöd för ESI (Edge Side Includes), ett språk som hjälper dig att återanvända avsnitt av en webbsida på andra webbsidor. Om din webbplats använder mycket upprepat innehåll på olika sidor kan ESI hjälpa dig att snabba upp webbplatsens sidinläsningstider genom cachelagring av ofta använda avsnitt.

Du kan utöka Varnish med dess olika moduler (VMODs). Gå till Varnishs officiella handledning för att lära dig att ställa in Varnish som en omvänd proxy för WordPress.

Apache-trafikserver

Apache Traffic Server är en cachelagrings-proxyserver med öppen källkod. Den är populär för sina snabba och skalbara funktioner. Detta var en kommersiell produkt som utvecklades av Yahoo! för länge sedan, men de gjorde om den till öppen källkod och donerade den till Apache Foundation för underhåll.

Flera större innehållsnätverk och CDN-nätverk som Comcast, Akamai, LinkedIn, Yahoo och Apple använder Apache Traffic Server för sin teknik.

Du kan även använda Apache HTTP Server (Apache httpd), en HTTP-server-daemon, för att ställa in en omvänd proxy på din webbserver. Bortsett från att detta fungerar som en grundläggande webbserver, hjälper det dig även att skicka statiskt och dynamiskt innehåll till användarna. Du får lära dig hur du ställer in Apache som en omvänd proxy senare i den här artikeln.

HAProxy

HAProxy är en omvänd proxy och laddnings-utjämnare med öppen källkod. Den är utformad för att integrera med de flesta befintliga webbserver-arkitekturer, inklusive Linux-distributioner och molnplattformar. På ett liknande sätt som Nginx använder HAProxy en händelsedriven I/O-modell och stöder uppdelning av begäranden över flera arbetsprocesser.

HAProxy utför HTTP-förfrågningar exceptionellt bra även under tunga sid-laddningar. Några av webbplatserna med högst trafik på internet som Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub och Imgur använder HAProxy för att leverera sina webbplatser effektivt.

Diskussionen om hur man ordnar med HAProxy är bortom ramen för denna artikel, men du kan kolla in deras dokumentation för att förstå hur det fungerar.

Obs: Traefik och Envoy är två andra öppen källkod-alternativ till HAProxy. De är båda effektiva omvända proxyservrar och laddnings-utjämnare med många avancerade funktioner.

Några andra populära omvända proxyservrar är AWS Elastic Last Balancer, GLBC, DigitalOcean laddnings-utjämnare, och Google Cloud´s laddnings-utjämnare. För en uttömmande lista över de bästa omvända proxyservrarna och laddnings-utjämnarna som används idag, kan du kolla in Stackshare.io.a

Omvänd Proxy: Användningsfall för WordPress-webbplatser

Det finns främst tre användnings-områden för en omvänd proxy för WordPress-webbplatser, inklusive de webbplatser som finns hos Kinsta.

Laddar en 'Huvudwebbplats' vs en 'Proxied webbplats
Laddar en ’Huvudwebbplats’ vs en ’Proxied webbplats

Vi kommer endast använda Nginx för detta exempel, eftersom det är den mest populära omvända proxy som används för WordPress-webbplatser idag. Men samma grundläggande principer kommer att gälla för andra omvända proxies.

Omvända proxyservrar är ofta utmanande att installera, konfigurera och stödja. Av den anledningen erbjuder Kinsta en tilläggsprenumeration på 50 USD för varje omvänd proxy som du behöver hjälp med att konfigurera. Du kan höra av dig till Kinstas supportteam för ytterligare detaljer.

1. Huvud- och Proxied-webbplatser som finns på samma server

Om både huvud-webbplatsen och proxied-webbplatsen finns på samma server kan huvud-webbplatsen köras på en WordPress-installation, medan en separat WordPress-installation driver proxied-webbplatsen.

Eftersom du får tillgång till både webbplatserna och deras delade webbserver kan du ställa in reglerna för omvänd proxy för huvud-webbplatsen och sedan konfigurera proxied-webbplatsen så att den blir inläst från den omvända proxyn.

Om du är host för båda dessa webbplatser hos Kinsta, då kan du höra av dig till Kinstas supportteam och begära att de ställer in den omvända proxyn åt dig. Här är den procedur du behöver följa:

  • Se till att både huvud-webbplatsen och proxied-webbplatsen finns hos Kinsta. Om så inte är fallet kan du migrera båda webbplatserna till Kinstas miljö, antingen manuellt eller genom att skicka in en begäran om migrering.
  • Starta ett supportärende och ge Kinstas supportteam en tydlig beskrivning av domänkonfigurationen. Det tar ungefär en arbetsdag att ställa in den omvända proxyn.
  • Kinsta kommer att ställa in relevanta regler för omvänd proxy på huvudwebbplatsen och konfigurera proxied-webbplatsen så den blir inläst över den omvända proxyn.

Här är Nginx standarddirektiv för omvänd proxy som används av Kinsta när en underkatalog-webbplats ska laddas över en omvänd proxy:

location ^~ /subfolder/ {
proxy_pass http://subfolder.domain.com;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

I ovanstående kod behöver du ersätta /subfolder/placeholder med det egentliga underkatalognamnet (t.ex. /blog//shop/). Dessutom bör underdomänen http://subfolder.domain.com matcha den URL som används för att rikta den omvända proxyn mot proxied-webbplatsen.

Platsdirektivet location innehåller caret och tilde-symboler (^~) för att berätta för Nginx att om den hittar den definierade strängen, bör det sluta att söka efter ytterligare matchningar och använda de direktiv som anges här. Läs mer om Nginx’s omvänd proxy-direktiv i deras dokumentation. Därefter måste du konfigurera proxied-webbplatsen så att den laddas över den omvända proxyn. Här är de standardsteg som kinsta följer för att konfigurera proxied-webbplatsen:

  • Skapa en underkatalog vid sökvägen som proxied-webbplatsen blir inläst ifrån. Alla proxied-webbplatsens filer flyttas till denna underkatalog.
  • Uppdatera webbserverns konfigurationsfiler för att sätta den nya underkatalogen som rotkatalog för proxied-webbplatsen. Dessutom måste du lägga till en omskrivningsregel för att ta bort underkatalogen från begäranden-URI för varje inkommande begäran.
  • Uppdatera alla webbadresser i proxied-webbplatsens databas så att de matchar live-webbplats-URL:erna (t.ex. example.com/blog).
  • Redigera proxied-webbplatsens wp-config.php-fil med $_SERVER['HTTP_HOST']-definitionen, så att den riktas mot huvudwebbplatsens webbadress.
  • Om du använder ett SSL-certifikat, måste du definiera strikta regler i filen wp-config.php för att undvika omdirigeringsloopar.

Obs: En proxied-webbplats kan inte skapa webbadresser som duplicerar samma underkatalog under vilken proxied-webbplatsen laddas. En proxied-webbplats på example.com/blog kan inte skapa en sida eller katalog på example.com/blog/blog.

2. Endast Proxied-webbplatsen på din server

För att göra detta måste du följa samma steg som beskrivs ovan, förutom att du i det här fallet måste konfigurera reglerna på två olika servrar.

Om du vill vara host för din proxied-webbplats med Kinsta lägger du till en domän på webbplatsen som kommer att riktas mot den omvända proxyn. Vanligtvis passar underdomänen för detta syfte (t.ex.  blog.example.com) och laddar proxied-webbplatsen över en underkatalog-länk (t.ex. example.com/blog).

När du har konfigurerat din proxied-webbplats på Kinsta kan du kontakta Kinsta´s supportteam för att konfigurera proxied-webbplatsen så att den blir inläst över en omvänd proxy. Dock ligger inställningen av den omvända proxyn utanför omfattningen av Kinsta´s support eftersom endast serverns admin kan ta hand om detta.

3. Endast huvudwebbplatsen på din server

Om du endast har tillgång till huvudwebbplatsen och dess webbserver, så ska du ställa in den omvända proxyn och konfigurera dess regler för att läsa in proxied-webbplatsen från en extern host. Att installera och konfigurera proxied-webbplatsen så att den laddas över den omvända proxyn är den sekundära server-admins ansvar.

Att hosta din huvudwebbplats hos Kinsta ger dig tillgång till Kinstas supportteam. Du kan höra av dig till dem för att lägga till standard-reglerna för omvänd proxy som anges tidigare i den här artikeln. Du kan även lägga till eventuella ytterligare anpassningar till dessa regler om det behövs.

I det här fallet är du helt ansvarig för att konfigurera proxied-webbplatsen så att den blir inläst på rätt sätt över den omvända proxyn.

Hur man ställer in Nginx som en Omvänd Proxy?

Om Kinsta inte är host för din webbplats och du hanterar dina servrar själv, då måste du ställa in den omvända proxyn själv och konfigurera den för att riktas mot proxied-webbplatsen.

Beroende på webbserverns operativsystem kan du installera Nginx på olika sätt. För Linux-distributioner kan du använda olika Nginx-paket som bygger på vilken Linux-distribution du har.

I exemplet nedan har vi installerat den primära webbplatsen på example.com-domännamn, medan proxied-webbplatsen på WordPress installeras på blog.domain.com´s underdomän. De drivs båda av Apache på en webbserver som körs på Ubuntu 18,04. Vi ska installera och konfigurera Nginx som en omvänd proxy på huvudservern.

1. Installera Nginx

Till att börja med ska du få tillgång till din servers terminal via SSH. Använd sedan kommandot apt-get för att uppdatera din distributions paketlista och installera Nginx på din webbserver.

sudo apt update
sudo apt install nginx

2. Konfigurera Nginx till proxy-begäranden

Därefter måste du konfigurera Nginx till proxybegäranden för domäner som finns hos Apache. För att göra detta, ska du skapa en ny virtuell host-fil. Här använder jag Nanos redigerare för att lägga till koden, men du kan använda den kod-redigerare som du trivs bäst med.

sudo nano /etc/nginx/sites-available/example.com.conf

Ställ sedan in Nginx-direktiven för att vidarebefordra begäranden till Apache genom att lägga till följande server {...} och location-block:

server {
listen      80;
server_name example.com www.example.com;
index       index.php;
root        /var/www/example.com/public    # fallback for index.php
location / {
try_files $uri $uri/ /index.php?$query_string;
}location /blog {
proxy_pass http://blog.domain.com;proxy_http_version                 1.1;
proxy_cache_bypass                 $http_upgrade;

# Proxy headers
proxy_set_header Upgrade           $http_upgrade;
proxy_set_header Connection        "upgrade";
proxy_set_header Host              $host;
proxy_set_header X-Real-IP         $remote_addr;
proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host  $host;
proxy_set_header X-Forwarded-Port  $server_port;

# Proxy timeouts
proxy_connect_timeout              60s;
proxy_send_timeout                 60s;
proxy_read_timeout                 60s;
}

I koden ovan, definierar jag en underkatalog example.com/blog-länk som kommer att betjänas av Apache servern. Se till att du använder din proxied-webbplats offentliga IP-adress (eller webbadress) i proxy_pass-direktivet. I mitt fall är min proxied-webbplats host på blog.domain.com´s underdomän.

Obs: Se till att proxied-webbplatsen är installerad och klar att bli betjänad innan du gör några ändringar.

Du kan lära dig mer om alla de direktiv för omvänd proxy som används här i Nginx detaljerade index över direktiv.

3. Spara den skapade virtuella host-filen

Aktivera sedan den nya virtuella hosten genom att skapa en symbollänk för filerna med namnet example.com.conf i både /etc/nginx/sites-available och /etc/nginx/sites-enabled katalogerna.

Spara den virtuella host-filen. Aktivera sedan den nya virtuella hosten genom att skapa en symlink för filerna med namnet example.com.conf i både /etc/nginx/sites-available och /etc/nginx/sites-enabled-katalogerna.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

4. Testa Nginx för fel

Därefter testar du Nginx för eventuella konfigurationsfel.

sudo nginx -t

Om det inte finns några fel, ska du ladda om Nginx för att verkställa ändringarna.

sudo systemctl reload nginx

Nu har du framgångsrikt ställt in Nginx för att arbeta som en omvänd proxy. För att bekräfta detta kan du använda phpinfo() funktion för att kontrollera de laddade PHP-variablerna när du besöker din proxied-webbplats.

Under SERVER_SOFTWARE och DOCUMENT_ROOT´s PHP-variabler, ser du att Apache tjänar denna domän på backend. Men  HTTP_X_REAL_IP och HTTP_X_FORWARDED_FOR’s PHP-variabler bekräftar att Nginx användes som en omvänd proxy för att vidarebefordra förfrågningar.

Du kan påskynda betjäning av din WordPress-webbplats över Nginx genom att använda fastcgi_cache och ngx_cache_purge-moduler. Den första modulen kommer att cachelagra din webbplats, och den andra modulen kommer automatiskt att rensa cachen baserat på specifika händelser (t.ex. publicering eller redigering av ett WordPress-inlägg/ sida).

Du kan använda WordPress-pluginet för Nginx Cache Controller för att styra Nginx proxyservercache direkt från din admin-instrumentpanel på WordPress. Om du använder en WordPress multisides-installation, kan du använda Nginx Helper´s plugin för att göra detsamma.

Kolla in Nginx huvuddokumentation och Nginx WordPress setup guide för en detaljerad översikt om hur man arbetar med Nginx och WordPress.

Hur man ställer in Apache som en Omvänd Proxy?

Innan du börjar, ska du se till att du har två webbplatser igång example.com och blog.domain.com. Den första webbplatsen kan eller kan inte vara en WordPress- webbplats, men den andra bör vara en WordPress-webbplats eftersom detta främst används för att ladda rot-domänens blogg på example.com/blog´s underkatalog-länk.

1. Börja konfigurera Apache

Du kan göra detta genom att öppna din server-terminal via SSH och aktivera Apache’s proxymodul.

sudo a2enmod proxy proxy_http ssl

Att köra ovanstående kommando kommer troligen att starta om Apache så att de nyligen definierade direktiven laddas.

2. Skapa en omvänd proxy

Därefter redigerar du din huvudservers virtuella host-fil för att skapa en omvänd proxy. Här är koden som du behöver lägga till:

<VirtualHost *>
DocumentRoot /var/www/app/public
SSLProxyEngine On    ProxyRequests off
ProxyPass /blog http://blog.domain.com
ProxyPassReverse /blog  http://blog.domain.com
</VirtualHost>

ProxyPass-direktivet kommer att skapa en omvänd proxy för de sökvägar som anges, medan ProxyPassReverse-direktivet kommer att avlyssna HTTP-svars- rubrikerna som skickas genom denna omvända proxy och skriva om dem för att matcha Apache-servern.

3. Redigera din wp-config.php-fil

Efter att du sparat filen måste du redigera din wp-config.php-fil genom att lägga till följande kod precis innan den linje som ber dig att sluta redigera.

# ProxyPass Settings
# overrides the variables below to ensure that any
# request to /blog/* subdirectory is taken care of properly
$_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI'];
$_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME'];
$_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

4. Uppdatera din WordPress-webbplatsdatabas

Slutligen måste du uppdatera din WordPress-webbplats databas för att lägga till konfigurationsvärdena för /blog´s undermapps-länk. Du kan göra detta genom att köra följande SQL-fråga:

UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Du bör nu kunna besöka https://www.example.com/blog och har din WordPress- webbplats hostad på  http://blog.domain.com utan att ändra dess webbadress. Du kan fortsätta att använda WordPress som vanligt för att bläddra, skriva, redigera och hantera din webbplats.

Begränsningar av en Omvänd Proxy?

  • En omvänd proxy utgör en betydande säkerhetsrisk eftersom den kan läsa och ändra all trafik som passerar genom den. Om du skickar HTTPS-trafik genom den omvända proxyn måste den dekryptera och kryptera om datan som skickas. Detta innebär att den måste inneha de privata nycklarna till SSL/TLS-certifikatet. Så om någon skadlig part kan äventyra din omvända proxy, kan de logga lösenord och injicera skadlig kod i dina webbplatser.
  • Om du eller dina användare inte kan komma åt din huvudserver direkt, kan en omvänd proxy leda till en enda felpunkt. Om du exempelvis använder en omvänd proxy som en front för att tjäna flera domäner, kan dess avbrott leda till att alla domäner kraschar samtidigt.
  • Om du förlitar dig på en omvänd proxy från tredje part (t.ex. Cloudflare), då lämnar du över webbplatsens känsliga information till dem. Även om de är betrodda, kan du inte förutsäga vad detta kan leda till.
  • Att återställa säkerhetskopior eller omvandla iscensättnings-webbplatser till live över en omvänd proxy kan göra att proxied-webbplatsen slutar att ladda ordentligt.

Att välja mellan ett CDN och en Omvänd Proxy

CDNs är en avancerad form av omvänd proxy där det mesta av konfigurationen och underhållet tas om hand av en tredje part. De kan skapa fantastiska prestandafördelar för din WordPress-webbplats med mindre ansträngning från din sida.

Ett CDN cachelagrar inte bara innehåll och skickar det snabbt till användarna, det minskar även belastningen på din ursprungs-server, ger lägre bandbredds- kostnader, skapar ett extra lager av säkerhet, ökar din webbplats SEO, och hjälper dig att skala din webbplats effektivare.

Du kommer att märka att de flesta av de förmåner som tillhandahålls av CDNs är desamma som de som tillhandahålls av omvända proxyservrar. Så, bör du välja ett CDN över en omvänd proxy, eller vice versa?

Det finns ingen anledning till att endast nöja sig med en av sakerna. Om du redan har en omvänd proxy installerad kommer du fortfarande att uppleva hastighets och prestandavinster av att använda ett CDN. Båda dessa cachelagrar väldigt bra, och om du har några unika behov (t.ex. dynamiskt innehåll, e-handel), då kan du konfigurera enkelt med några anpassade rubriker som skickas vidare av ditt CDN eller den omvända proxyn.

Omvänd proxy — Vanliga frågor

Här är några vanliga frågor som kan hjälpa dig att förstå allt om en omvänd proxy.

Vad är syftet med en omvänd proxy?

För att maskera platsen för en extern webbplats, så att den ser ut som om den är en del av huvuddomänen. Ett universitet kan exempelvis ha en studentinloggningssektion där studenterna kan kontrollera sina betyg. De hostar troligtvis inte detta i WordPress utan har sannolikt en server på deras campus som kör någon graderings-applikation. Istället för att säga åt eleverna att gå till https://123.123.123.123/~students/gradeing_software/some/long/url/ så kan de helt enkelt använda en omvänd proxy så att eleverna kan gå till https://university.edu/grades. Det ser då ut som att det är en del av huvud-webbplatsen när det i själva verket finns på en annan plattform.

Är CDN en omvänd proxy?

Nej, ett CDN är ett innehållsleveransnätverk som hjälper till att snabba upp betjäningsdelar av webbplatsen från en plats som ligger närmare besökaren.

Är en belastningsutjämnare en omvänd proxy?

Nej, en belastningsutjämnare är ett sätt att hjälpa till att fördela trafiken. En mycket upptagen webbplats kan exempelvis ha en belastningsutjämnare som distribuerar trafik till flera webbservrar. Webbservrarna har alla en spegel av samma webbplatsfiler. Detta gör dock att webbplatsen kan hantera mer trafik än normalt eftersom belastningsutjämnaren kommer att trycka ut den inkommande trafiken till varje webbserver så att ingen enskild webbserver måste hantera ALL inkommande trafik på en gång. Så om en webbserver är inställd för att hantera 10 000 besök per minut, och du har två webbservrar bakom en belastningsutjämnare, skulle webbplatsen i teorin klara av 20 000 besök per minut.

Är en API-gateway en omvänd proxy?

Nej, ett API tillåter helt enkelt att någon kör kommandon på en plattform utan att behöva logga in på ett användargränssnitt för att hantera en webbplats. Med API: t så kan en kund lägga upp ett nytt blogginlägg på sin WordPress-webbplats utan att behöva logga in på WordPress-instrumentpanelen.

Behöver jag en omvänd proxy?

Detta är olika från fall till fall. Alla behöver inte en omvänd proxy, men i fallet med universitetet som nämns ovan är det vettigt. Detta kan även vara av andra skäl som Ford/Chevy/osv. att de kan ha en ”Bygg din bil”-sektion på sin webbplats, som inte är en del av huvud-webbplatsen utan någon bilbyggnads-/anpassningsplattform som de vill ha som en del av huvudsidan. Exempelvis https://ford.com/buildmycar istället för https://carbuildingplatform.com/ford/build/customcar/.

Sammanfattning

WordPress är mycket flexibelt. Du kan använda det som en blogg, en ehandels-webbplats, eller till och med ett Learning Management system. I de flesta fall kan du anpassa WordPress så att det passar dina unika behov.

Ibland kan du dock behöva använda en separat domän eller en sekundär server som host för ytterligare en webbplats. Som vi diskuterat tidigare, kan det bero på att du använder olika teknik-stackar för webbplatsen för ett stort företag eller lanserar en WordPress-blogg för en redan existerande icke-WordPress webbplats.

En omvänd proxy kan hjälpa dig i båda dessa fall, så att du får ut så mycket som möjligt av WordPress utan att behöva försaka din viktigaste webbplats och börja om.

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.