Konfigurera webbservern
Konfigurera webbservern så att den lyssnar på en annan port än standardporten 80 eftersom Varnish svarar direkt på inkommande HTTP-begäranden, inte på webbservern.
I följande avsnitt används port 8080 som exempel.
Så här ändrar du Apache 2.4-lyssningsporten:
- Öppna
/etc/httpd/conf/httpd.conf
i en textredigerare. - Leta reda på direktivet
Listen
. - Ändra värdet för lyssningsporten till
8080
. (Du kan använda valfri tillgänglig lyssningsport.) - Spara ändringarna i
httpd.conf
och avsluta textredigeraren.
Ändra konfigurationen för lack-systemet
Så här ändrar du systemkonfigurationen för engelska:
-
Som användare med
root
-behörighet öppnar du konfigurationsfilen för spanska i en textredigerare:- CentOS 6:
/etc/sysconfig/varnish
- CentOS 7:
/etc/varnish/varnish.params
- Debian:
/etc/default/varnish
- Ubuntu:
/etc/default/varnish
- CentOS 6:
-
Ställ in Varnish-lyssningsporten på 80:
code language-conf VARNISH_LISTEN_PORT=80
För lack 4.x kontrollerar du att DAEMON_OPTS innehåller rätt avlyssningsport för parametern
-a
(även om VARNISH_LISTEN_PORT har rätt värde):code language-conf DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
-
Spara ändringarna i konfigurationsfilen för lack och avsluta textredigeraren.
Ändra standard-VCL
I det här avsnittet beskrivs hur du tillhandahåller minimal konfiguration så att Varnish returnerar HTTP-svarshuvuden. Detta gör att du kan verifiera att lack fungerar innan du konfigurerar programmet Commerce att använda Varnish.
Så här konfigurerar du engelska minimalt:
-
Säkerhetskopiera
default.vcl
code language-bash cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak
-
Öppna
/etc/varnish/default.vcl
i en textredigerare. -
Gå till följande stanza:
code language-conf backend default { .host = "127.0.0.1"; .port = "80"; }
-
Ersätt värdet för
.host
med det fullständiga, kvalificerade värdnamnet eller IP-adressen och avlyssningsporten för den fullständiga serverdelen eller ursprungsservern, d.v.s. servern som tillhandahåller innehållet varnish kommer att accelerera.Vanligtvis är det här din webbserver. Se Serverdelsservrar i Slutredigeringsguiden.
-
Ersätt värdet för
.port
med webbserverns lyssningsport (8080 i det här exemplet).Exempel: Apache installeras på värd 192.0.2.55 och Apache lyssnar på port 8080:
code language-conf backend default { .host = "192.0.2.55"; .port = "8080"; }
note info INFO Om lack och Apache körs på samma värd rekommenderar Adobe att du använder en IP-adress eller ett värdnamn och inte localhost
. -
Spara ändringarna i
default.vcl
och avsluta textredigeraren. -
Starta om lack:
code language-bash service varnish restart
Om det inte går att starta Varnish kan du försöka köra det från kommandoraden på följande sätt:
varnishd -d -f /etc/varnish/default.vcl
Detta bör visa felmeddelanden.
Kontrollera att lack fungerar
I följande avsnitt beskrivs hur du kan verifiera att Varnish fungerar, men utan konfigurerar Commerce att använda det. Du bör testa detta innan du konfigurerar Commerce.
Utför de uppgifter som beskrivs i följande avsnitt i den ordning som visas:
Start Varnish
Ange: service varnish start
Om Varnish inte kan starta som en tjänst startar du den från kommandoraden enligt följande:
-
Starta Varnish CLI:
code language-bash varnishd -d -f /etc/varnish/default.vcl
-
Starta den underordnade processen för lack:
Ange
start
när du uppmanas till dettaFöljande meddelanden visas för att bekräfta att starten lyckades:
code language-none child (29805) Started 200 0 Child (29805) said Child (29805) said Child starts
netstat
Logga in på Varnish-servern och ange följande kommando:
netstat -tulpn
Leta efter följande utdata:
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 32614/varnishd
tcp 0 0 127.0.0.1:58484 0.0.0.0:* LISTEN 32604/varnishd
tcp 0 0 :::8080 :::* LISTEN 26822/httpd
tcp 0 0 ::1:48509 :::* LISTEN 32604/varnishd
I föregående exempel visas hur Varnish körs på port 80 och Apache som körs på port 8080.
Om du inte ser utdata för varnishd
kontrollerar du att Varnish körs.
Installera Commerce
Installera Commerce om du inte redan har gjort det. När du uppmanas att ange en bas-URL använder du värddatorn Varnish och port 80 (för Varnish) eftersom Varnish tar emot alla inkommande HTTP-begäranden.
Möjligt fel vid installation av Commerce:
Error 503 Service Unavailable
Service Unavailable
XID: 303394517
Varnish cache server
Om det här felet uppstår redigerar du default.vcl
och lägger till en timeout i backend
-instansen enligt följande:
backend default {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 600s;
}
Verifiera HTTP-svarshuvuden
Nu kan du verifiera att Varnish serverar sidor genom att titta på HTML svarshuvuden som returneras från vilken sida som helst.
Innan du kan titta på rubriker måste du ange Commerce för utvecklarläge. Det finns flera sätt att göra det på. Det enklaste är att ändra .htaccess
i Commerce-programroten. Du kan också använda kommandot magento deploy:mode:set
.
Ange Commerce för utvecklarläge
Använd kommandot magento deploy:mode:set
om du vill ställa in Commerce för utvecklarläget.
Titta på varnish-loggen
Kontrollera att Varnish körs och ange sedan följande kommando på Varnish-servern:
varnishlog
Gå till en Commerce-sida i en webbläsare.
En lång lista med svarshuvuden visas i kommandotolken. Leta efter rubriker som följande:
- BereqHeader X-Varnish: 3
- VCL_call BACKEND_FETCH
- VCL_return fetch
- BackendOpen 17 default(10.249.151.10,,8080) 10.249.151.10 60914
- Backend 17 default(10.249.151.10,,8080)
- Timestamp Bereq: 1440449534.261791 0.000618 0.000618
- ReqHeader Host: 10.249.151.10
- ReqHeader Connection: keep-alive
- ReqHeader Content-Length: 86
- ReqHeader Cache-Control: max-age=0
- ReqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- ReqHeader Origin: http://10.249.151.10
Om rubriker som dessa inte visas stoppar du Varnish, kontrollerar default.vcl
och försöker igen.
Titta på sidhuvuden för svar från HTML
Det finns flera sätt att titta på svarshuvuden, bland annat med hjälp av ett webbläsarplugin-program eller en webbläsarkontroll.
I följande exempel används curl
. Du kan ange det här kommandot från alla datorer som har åtkomst till Commerce-servern via HTTP.
curl -I -v --location-trusted '<your Commerce base URL>'
Exempel:
curl -I -v --location-trusted 'http://192.0.2.55/magento2'
Leta efter rubriker som följande:
Content-Type: text/html; charset=iso-8859-1
X-Varnish: 15
Age: 0
Via: 1.1 varnish-v6
X-Magento-Cache-Debug: HIT