Varnish als Reverse-Proxy des Apache2-Servers, Problem mit der Portumleitung

Varnish als Reverse-Proxy des Apache2-Servers, Problem mit der Portumleitung

Ich habe gesucht und es gibt viele Leute mit dem gleichen Problem, aber es gibt keine klare Lösung (oder zumindest habe ich keine gefunden).

Ich verwende Varnish-Cache (3.0) als Reverse-Proxy, der auf Port 80 für einen Apache 2-Webserver lauscht, der auf Port 88 lauscht.

Wenn ich die folgende URL anfordere, funktioniert es einwandfrei:http://server/zeug/

Aber wenn ich dies anfordere:http://server/zeug(ohne den "/" am Ende) wird der Browser auf den Port des Backends Apache umgeleitet (http://server:88/stuff/).

Wie kann ich das Verhalten von Apache 2 in dieser Situation einrichten?

Dank im Voraus!

Antwort1

Überprüfen Sie die UseCanonicalName-Direktive in httpd.conf

#
# UseCanonicalName: Determines how Apache constructs self-referencing
# URLs and the SERVER_NAME and SERVER_PORT variables.
# When set "Off", Apache will use the Hostname and Port supplied
# by the client.  When set "On", Apache will use the value of the
# ServerName directive.
#
UseCanonicalName Off

Sie können es auch mit Lack entfernen. Versuchen Sie Folgendes:

sub vcl_fetch { 
   if (beresp.status == 301 || beresp.status == 302) 
   { 
      set beresp.http.Location = regsub(beresp.http.Location, "^(\w+://[^/]+):\d+", "\1"); 
   } 
} 

verwandte Informationen