Frage

Ich habe Varnish Turpintine auf unserer Staging-Site installiert, indem ich den Anweisungen auf der gefolgt bin Magento-Turpintine-Wiki.

Unsere Website läuft auf Ubuntu 14.04, NGINX, Lack-4.0.3m, Terpentine v0.6.5, Magento 1.9.2.

Das sind meine DAEMON_OPTS In /etc/default/varnish

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -S /etc/varnish/secret \
             -p cli_buffer=16384 \
             -p feature=+esi_ignore_other_elements \
             -p vcc_allow_inline_c=on \
             -s malloc,256m"

Ich habe das Terpentinmodul erfolgreich installiert und nur die Konfiguration für den Secret Varnish Authentication Key wirklich geändert \n angehängt, URL-Blacklist und Aktivierungs-Debug-Informationen.

Als ich versuchte, meine Konfiguration zu speichern, erhielt ich die folgende Fehlermeldung:

Failed to apply the VCL to 127.0.0.1:6082: Got unexpected response code from Varnish: 106 Message from VCC-compiler: directors are now in directors VMOD. ('input' Line 27 Pos 1) director default round-robin { ########---------------------- Running VCC-compiler failed, exited with 2 VCL compilation failed

Das ist es, was ich im Terpentin erzeugt habe var/default.vcl Datei:

vcl 4.0;
C{
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <pthread.h>
static pthread_mutex_t lrand_mutex = PTHREAD_MUTEX_INITIALIZER;
void generate_uuid(char* buf) {
pthread_mutex_lock(&lrand_mutex);
long a = lrand48();
long b = lrand48();
long c = lrand48();
long d = lrand48();
pthread_mutex_unlock(&lrand_mutex);
sprintf(buf, "frontend=%08lx%04lx%04lx%04lx%04lx%08lx",
a,
b & 0xffff,
(b & ((long)0x0fff0000) >> 16) | 0x4000,
(c & 0x0fff) | 0x8000,
(c & (long)0xffff0000) >> 16,
d
);
return;
}
}C
import std;
director default round-robin {
{
.backend = {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 300s;
.between_bytes_timeout = 300s;
}
}
}
director admin round-robin {
{
.backend = {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 21600s;
.between_bytes_timeout = 21600s;
}
}

Ich konnte das scheinbar beheben, indem ich das erstellt habe custom_include.vcl Datei von version-4.vcl da es fehlte

cp app/code/community/Nexcessnet/Turpentine/misc/version-4.vcl app/code/community/Nexcessnet/Turpentine/misc/custom_include.vcl

Aber jetzt, wenn ich versuche, die Konfiguration zu speichern, erhalte ich eine neue Fehlermeldung:

Failed to apply the VCL to 127.0.0.1:6082: Varnish data to write over length limit by 749 characters

Dies scheint mit dem zusammenzuhängen -p cli_buffer=16384 was ich in der eingestellt habe DAEMON_OPTS bei /etc/default/varnish.Wenn ich versuche, diesen Wert zu erhöhen, erhalte ich immer noch die gleiche Fehlermeldung, jedoch mit einem anderen Grenzwert.

Failed to apply the VCL to 127.0.0.1:6082: Varnish data to write over length limit by 8941 characters.

Ich habe nichts drin magento/var/log/ oder /var/log/varnish/ für Lack.Ich habe versucht, den Varnish Admin zu überprüfen, um festzustellen, ob mit dem cli_buffer etwas nicht stimmt, konnte aber nichts Bemerkenswertes feststellen.

$ sudo varnishadm
varnish> param.show cli_buffer
200        
cli_buffer
        Value is: 16k [bytes]
        Default is: 8k
        Minimum is: 4k

        Size of buffer for CLI command input.
        You may need to increase this if you have big VCL files and use
        the vcl.inline CLI command.
        NB: Must be specified with -p to have effect.

Vielen Dank im Voraus für alle Ratschläge.

War es hilfreich?

Lösung 2

Anscheinend habe ich das zum Laufen gebracht, indem ich einen Fix angewendet habe, den ich gefunden habe GitHub-Ticket 915.

Zunächst einmal war der Fix, den ich für meinen ersten Fehler angewendet habe, irreführend, also habe ich die von mir erstellte Datei entfernt.

rm app/code/community/Nexcessnet/Turpentine/misc/custom_include.vcl

Dann habe ich die zusammengeführt Entwicklungszweig des Magento-Turpintine-Repos mit meinem Magento-Projekt wie im vorgeschlagen GitHub-Ticket 915.

Wenn ich jetzt die Turpintine-Konfiguration speichere / die Varnish-Konfiguration anwende, erhalte ich keine Fehlermeldungen.

Auch wenn die Website offenbar nicht viel schneller geworden ist, stellt sich die Frage, wie ich sicherstellen kann, dass der Lack so funktioniert, wie er soll.

AKTUALISIERENIch konnte sicherstellen, dass Varnish funktionierte, indem ich Lackstat ausführte. Wenn der Hitrate-Durchschnitt größer als 0 ist, bedeutet dies, dass der Cache betroffen ist.

Andere Tipps

Danke für das Teilen.Ich habe gerade die neueste Version von installiert devel Branch, um ein sehr ähnliches Problem zu beheben.Um zu überprüfen, ob Varnish zwischenspeichert, können Sie einen der folgenden Lacktop-Befehle verwenden, wenn Sie Zugriff auf den Server haben.

/usr/bin/varnishtop -i RxURL
/usr/bin/varnishtop -i RxHeader -C -I \^HOST
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top