Varnish как обратный прокси-сервер Apache2, проблема с перенаправлением портов

Varnish как обратный прокси-сервер Apache2, проблема с перенаправлением портов

Я искал, и у многих людей такая же проблема, но четкого решения нет (или, по крайней мере, я его не нашел).

Я использую Varnish-Cache (3.0) в качестве обратного прокси-сервера, прослушивающего порт 80 для веб-сервера Apache 2, прослушивающего порт 88.

Если я запрашиваю следующий URL, то все работает нормально:http://сервер/вещи/

Но если я попрошу это:http://сервер/вещи(без "/" в конце), браузер перенаправляется на порт бэкэнда Apache (http://сервер:88/stuff/).

Как настроить поведение Apache 2 в этой ситуации?

Заранее спасибо!

решение1

Проверьте директиву UseCanonicalName в 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

Вы также можете удалить его с лака, попробуйте это:

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

Связанный контент