2015-09-04 189 views
0

我已设置清漆4运行在端口8081而Apache配置为运行在端口80. 我的设置的问题是,当我浏览我的域名 访问http //:mydomain.com:8180/。
我得到一个(301)永久重定向到http //:mydomain.com/。 由于这个重定向我无法获得调用缓存域http http://:mydomain.com:8180/ visa v未缓存域http //:mydomain.com/之间的区别。设置清漆监听不同的端口,而Apache监听端口80

我清漆的配置

DAEMON_OPTS="-a :8180\ 
      -T localhost:6082 \ 
      -f /etc/varnish/default.vcl \ 
      -S /etc/varnish/secret \ 
      -s malloc,1G" 

.......

也是VCL

backend mydomain { 
     .host = "x.x.x.x"; 
     .port = "80"; 
     .connect_timeout = 60s; 
     .first_byte_timeout = 60s; 
     .between_bytes_timeout = 60s; 
     .max_connections = 800; 
} 

.......

的性反应的头节目Apache是​​一个重定向。

HTTP/1.1 301 Moved Permanently 
Date: Fri, 04 Sep 2015 11:58:04 GMT 
Server: Apache 
X-Powered-By: PHP/5.3.3 
Expires: Thu, 19 Nov 1981 08:52:00 GMT 
Pragma: no-cache 
X-Pingback: http//:mydomain.com/xmlrpc.php 
Location: http//:mydomain.com/ 
Vary: Accept-Encoding 
Content-Length: 0 
Content-Type: text/html; charset=UTF-8 
X-Varnish: 32795 
Age: 0 
Via: 1.1 varnish-v4 
Connection: keep-alive 

我的问题是如何停止重定向?

回答

0

通过如下所示在VLC添加

set req.http.host = "http//:mydomain.com"; 

固定这一点。

if (req.http.host ~ "mydomain.com:8180") { 
       set req.http.host = "mydomain.com"; 
       set req.backend_hint = mydomain; 
     } 

通过这样做,我们确保请求主机是Apache的认可,因此Apache将不会重定向