2016-07-05 10 views
0

Ich habe einen Ubuntu 12.0 Server mit Varnish 4 auf Port 80 und dem Apache 2.4 in 8080. Ich habe Tomcat 7 auf Port 8181 installiert, der nur eine Liferay Site betreibt. Ich möchte Varnish auch mit Tomcat arbeiten lassen. Wie richte ich das ein? Meine aktuelle Setup ist folgendes:Wie konfiguriere ich Varnish mit Apache und Tomcat

/etc/default/varnish 

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


/etc/varnish/default.vcl 

backend default { 
    .host = "123.456.789.000"; 
    .port = "8080"; 
    .connect_timeout = 580s; 
    .first_byte_timeout = 580s; 
    .between_bytes_timeout = 580s; 
} 

Wenn ich meinen Browser 123.456.789.000:8181 die Tomcat Website verweisen funktioniert. Ich werde den Registrar mit meinem DNS einstellen, um auf "www.mytomcatsite.com" zu antworten, aber wie vermeide ich den ": 8181" auf der URL?

Mit Apache funktioniert alles gut.

TIA.

Antwort

1

Aus der Lack Dokumentation:

Wir fügen ein neues Backend .:

backend java { 
    .host = "127.0.0.1"; 
    .port = "8000"; 
} 

Jetzt müssen wir Varnish sagen, wo die Differenz URL zu senden. Ermöglicht bei vcl_recv suchen .:

sub vcl_recv { 
    if (req.url ~ "^/java/") { 
     set req.backend_hint = java; 
    } else { 
     set req.backend_hint = default; 
    } 
} 

Wenn Sie diese Routing auf der Basis von virtuellen Hosts durchgeführt werden möchten, müssen Sie nur noch inspizieren req.http.host:

sub vcl_recv { 
    if (req.http.host ~ "foo.com") { 
     set req.backend_hint = foo; 
    } elsif (req.http.host ~ "bar.com") { 
     set req.backend_hint = bar; 
    } 
} 

See:

Hinweis: Dies ist für Varnish 4. Die VCL-Syntax unterscheidet sich geringfügig für Varnish 3.