Apache-2.2

Varnish 作為 Apache2 伺服器的反向代理,埠重定向問題

  • September 17, 2015

我一直在尋找,有很多人有同樣的問題,但沒有明確的解決方案(或者至少我沒有找到)。

我正在使用 Varnish-Cache (3.0) 作為在埠 80 中偵聽的反向代理,用於偵聽埠 88 的 Apache 2 網路伺服器。

如果我請求以下 URL,它可以正常工作:http://server/stuff/

但是,如果我這樣請求:http://server/stuff(末尾沒有“/”),瀏覽器將被重定向到後端 Apache 的埠(http://server:88/stuff/)。

在這種情況下如何設置 Apache 2 的行為?

提前致謝!

檢查 httpd.conf 上的 UseCanonicalName 指令

#
# 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"); 
  } 
} 

引用自:https://serverfault.com/questions/334549