Konfigurieren des Webservers
Konfigurieren Sie Ihren Webserver so, dass er an einem anderen Port als dem Standard-Port 80 lauscht, da Varnish direkt auf eingehende HTTP-Anfragen reagiert, nicht auf den Webserver.
In den folgenden Abschnitten wird Port 8080 als Beispiel verwendet.
So ändern Sie den Apache 2.4-Lauschanschluss:
- Öffnen Sie
/etc/httpd/conf/httpd.confin einem Texteditor. - Suchen Sie die
Listen. - Ändern Sie den Wert des Listen-Ports in
8080. (Sie können einen beliebigen verfügbaren Listen-Port verwenden.) - Speichern Sie Ihre Änderungen in
httpd.confund beenden Sie den Texteditor.
Ändern der Konfiguration des Lacksystems
So ändern Sie die Konfiguration des Lacksystems:
-
Wenn Sie ein Benutzer mit
rootBerechtigungen sind, öffnen Sie Ihre Vanish-Konfigurationsdatei in einem Texteditor:- CentOS 6:
/etc/sysconfig/varnish - CentOS 7:
/etc/varnish/varnish.params - Debian:
/etc/default/varnish - Ubuntu:
/etc/default/varnish
- CentOS 6:
-
Stellen Sie den Lacklauschanschluss auf 80:
code language-conf VARNISH_LISTEN_PORT=80Stellen Sie bei Varnish 4.x sicher, dass DAEMON_OPTS den richtigen Listening-Port für den
-a-Parameter enthält (auch wenn VARNISH_LISTEN_PORT auf den richtigen Wert gesetzt ist):code language-conf DAEMON_OPTS="-a :80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" -
Speichern Sie Ihre Änderungen in der Varnish-Konfigurationsdatei und beenden Sie den Texteditor.
Standard-VCL ändern
In diesem Abschnitt wird beschrieben, wie Sie eine minimale Konfiguration bereitstellen, damit Varnish HTTP-Antwort-Header zurückgibt. Auf diese Weise können Sie überprüfen, ob Varnish funktioniert, bevor Sie die Commerce für die Verwendung von Varnish konfigurieren.
So konfigurieren Sie Lack minimal:
-
default.vcl:code language-bash cp /etc/varnish/default.vcl /etc/varnish/default.vcl.bak -
Öffnen Sie
/etc/varnish/default.vclin einem Texteditor. -
Suchen Sie die folgende Strophe:
code language-conf backend default { .host = "127.0.0.1"; .port = "80"; } -
Ersetzen Sie den Wert von
.hostdurch den vollqualifizierten Hostnamen oder die IP-Adresse und den Listen-Port des Backend oder Ursprungs-Servers, d. h. der Server, der den Inhalt bereitstellt, beschleunigt Varnish.Normalerweise ist dies Ihr Webserver. Siehe Backend-Server im Handbuch zum Lackieren.
-
Ersetzen Sie den Wert von
.portdurch den Überwachungs-Port des Webservers (in diesem Beispiel 8080).Beispiel: Apache wird auf Host 192.0.2.55 installiert und Apache überwacht Port 8080:
code language-conf backend default { .host = "192.0.2.55"; .port = "8080"; }note info INFO Wenn Varnish und Apache auf demselben Host ausgeführt werden, empfiehlt Adobe, eine IP-Adresse oder einen Hostnamen und nicht localhostzu verwenden. -
Speichern Sie Ihre Änderungen in
default.vclund beenden Sie den Texteditor. -
Lack neu starten:
code language-bash service varnish restart
Wenn Varnish nicht gestartet werden kann, versuchen Sie, es wie folgt über die Befehlszeile auszuführen:
varnishd -d -f /etc/varnish/default.vcl
Dadurch sollten Fehlermeldungen angezeigt werden.
Überprüfen, ob der Lack funktioniert
In den folgenden Abschnitten wird beschrieben, wie Sie sicherstellen können, dass Varnish funktioniert, aber ohne Commerce für die Verwendung konfigurieren können. Sie sollten dies vor der Konfiguration von Commerce ausprobieren.
Führen Sie die in den folgenden Abschnitten beschriebenen Aufgaben in der angegebenen Reihenfolge aus:
Anlauflack
Eingeben: service varnish start
Wenn Varnish nicht als Service gestartet werden kann, starten Sie es wie folgt über die Befehlszeile:
-
Starten Sie die Lackierungs-CLI:
code language-bash varnishd -d -f /etc/varnish/default.vcl -
Untergeordneten Prozess „Lackieren“ starten:
Geben Sie bei Aufforderung
starteinDie folgenden Meldungen werden angezeigt, um einen erfolgreichen Start zu bestätigen:
code language-none child (29805) Started 200 0 Child (29805) said Child (29805) said Child starts
netstat
Melden Sie sich beim Lackierserver an und geben Sie den folgenden Befehl ein:
netstat -tulpn
Achten Sie insbesondere auf die folgende Ausgabe:
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
Oben sehen Sie Varnish, das auf Port 80 und Apache, das auf Port 8080 läuft.
Wenn die Ausgabe für varnishd nicht angezeigt wird, stellen Sie sicher, dass „Varnish“ ausgeführt wird.
Siehe netstat Optionen.
Installieren der Commerce-Software
Installieren Sie die Commerce-Software, falls noch nicht geschehen. Wenn Sie nach einer Basis-URL gefragt werden, verwenden Sie den Varnish-Host und Port 80 (für Varnish), da Varnish alle eingehenden HTTP-Anfragen empfängt.
Mögliche Fehlermeldung bei der Installation von Commerce:
Error 503 Service Unavailable
Service Unavailable
XID: 303394517
Varnish cache server
Wenn dieser Fehler auftritt, bearbeiten Sie default.vcl und fügen Sie der backend wie folgt eine maximale Wartezeit hinzu:
backend default {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 600s;
}
HTTP-Antwortkopfzeilen überprüfen
Jetzt können Sie überprüfen, ob Varnish Seiten bereitstellt, indem Sie sich die HTML-Antwort-Header ansehen, die von einer beliebigen Seite zurückgegeben werden.
Bevor Sie Kopfzeilen betrachten können, müssen Sie Commerce für den Entwicklermodus festlegen. Es gibt mehrere Möglichkeiten, dies zu tun, wobei die einfachste die Änderung von .htaccess im Commerce-Anwendungsstamm ist. Sie können auch den Befehl magento deploy:mode:set verwenden.
Festlegen von Commerce für den Entwicklermodus
Um Commerce für den Entwicklermodus festzulegen, verwenden Sie den magento deploy:mode:set.
Das Lackprotokoll ansehen
Stellen Sie sicher, dass Varnish ausgeführt wird, und geben Sie dann den folgenden Befehl auf dem Varnish-Server ein:
varnishlog
Wechseln Sie in einem Webbrowser zu einer beliebigen Commerce-Seite.
Im Eingabeaufforderungsfenster wird eine lange Liste von Antwort-Headern angezeigt. Suchen Sie nach Kopfzeilen wie den folgenden:
- 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
Wenn Kopfzeilen wie diese nicht werden stoppen Sie „Lackieren“, überprüfen Sie Ihre default.vcl und versuchen Sie es erneut.
HTML-Antwortkopfzeilen ansehen
Es gibt mehrere Möglichkeiten, Antwort-Header zu betrachten, einschließlich der Verwendung eines Browser-Plug-ins oder eines Browser-Inspektors.
Im folgenden Beispiel wird curl verwendet. Sie können diesen Befehl von jedem Computer aus eingeben, der über HTTP auf den Commerce-Server zugreifen kann.
curl -I -v --location-trusted '<your Commerce base URL>'
Beispiel:
curl -I -v --location-trusted 'http://192.0.2.55/magento2'
Suchen Sie nach Kopfzeilen wie den folgenden:
Content-Type: text/html; charset=iso-8859-1
X-Varnish: 15
Age: 0
Via: 1.1 varnish-v6
X-Magento-Cache-Debug: HIT