Das grundlegende Varnish 4.0-Setup scheint nicht zu funktionieren

Das grundlegende Varnish 4.0-Setup scheint nicht zu funktionieren

[Anscheinend habe ich Varnishd als Root ausgeführt]

Jetzt verstehe ich Folgendes:

[gideon@mywebsite ~]$ sudo varnishd -f /etc/varnish/default.vcl -s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:8000 -d
[sudo] password for gideon: 
Platform: Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
200 284     
-----------------------------
Varnish Cache CLI 1.0
-----------------------------
Linux,2.6.32-358.6.2.el6.x86_64,x86_64,-smalloc,-smalloc,-hcritbit
varnish-3.0.7 revision f544cd8

Ich habe ein SEHR einfaches Setup. Perl Webapp läuft darauf 0.0.0.0:5000und ich möchte, dass Varnish dies zwischenspeichert. Das System ist ein virtuelles"Tröpfchen"(oder VM) aufhttp://www.digitalocean.comDie Maschine ist einCentOS-Box.

Darin /etc/sysconfig/varnish/habe ich:

DAEMON_OPTS="-a :80 \
             -T localhost:6082 \
             -f /etc/varnish/default.vcl \
             -u varnish -g varnish \
             -S /etc/varnish/secret \
             -s malloc,128m"

Darin /etc/varnish/default.vclhabe ich:

backend default {
  .host = "0.0.0.0";
  .port = "5000";
}

Ich habe verschiedene Dinge versucht, aber ohne Erfolg. (Neustarts, alternative Konfigurationen usw.). Ich kann unter website.com:5000 problemlos auf meine App zugreifen.

Dies ist, was ich erhalten habe, als ich Folgendes verwendet habe varnishd:

$varnishd -f /etc/varnish/default.vcl 
                    -s malloc,128m -T 127.0.0.1:2000 -a 0.0.0.0:80 -d
Failed to create ./vcl.jAoXC8Rf.c: Permission denied

Ich habe versucht, in verschiedenen Posts (einige auf SF) zu suchen, aber alle führten zu Sackgassen oder Lösungen für völlig unterschiedliche Situationen.

Ich wette, ich mache irgendetwas ganz Grundlegendes falsch, aber ich bin sogar so weit gegangen, meine Maschine zu zerstören, indem ich mit einer sauberen VM angefangen habe, Perl und die Module installiert habe, die ich brauche, dann meine App zum Laufen gebracht habe und dann das BASIC Varnish-Setup aus den Dokumenten installiert habe. Das habe ich ZWEIMAL gemacht!

Für jede Hilfe und jeden Hinweis bin ich sehr dankbar.

Antwort1

backend default {
  .host = "0.0.0.0";
  .port = "5000";
}

Das ist Ihr Problem. Sie können das Backend nicht bei 0.0.0.0 haben. Sie möchten stattdessen wahrscheinlich 127.0.0.1 verwenden.

(0.0.0.0 wird verwendet, um dem System mitzuteilen, dass es auf Verbindungen zu beliebigen IPs warten soll, ist aber keine gültige IP für eine Verbindung.)

Edit: ok, ich habe zu schnell geantwortet. Das wird das Berechtigungsproblem nicht beheben. Gib mir eine Sekunde.

Edit2: ok, beim nochmaligen Lesen sehe ich, dass du das Berechtigungsproblem behoben hast, also sollte meine Lösung das nicht funktionierende Backend reparieren.

Antwort2

Die Berechtigungen für das Verzeichnis, in das Varnish die VCL kompiliert, werden von Ubuntu unter /var/lib/varnish/ verwendet. Versuchen Sie es mit chmod 666 -R /var/lib/varnish/

Laut Ihrem obigen Code führen Sie den Vorgang nicht als Root aus. Versuchen Sie, den Vorgang als Root oder mit sudo zu testen. Wenn das funktioniert, liegt das Problem bei den Berechtigungen.

verwandte Informationen