server1:172.25.254.20  varnish

server2:172.25.254.21  http

主机:172.25.254.44

Varnish是一款高性能的开源HTTP加速器

 

server1:

 #yum install varnish-3.0.5-1.el6.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm -y

 # vim /etc/varnish/default.vcl

backend web1 {

  .host = "127.0.0.1";

  .port = "8080";

}   #定义本机端口

 

sub vcl_deliver {

if (obj.hits > 0) {

set resp.http.X-Cache = "HIT from westos cache";

}

else {

set resp.http.X-Cache = "MISS from westos cache";

}

return (deliver);

}       #定义是否命中

 

   #  yum install httpd -y

   #  cd /var/www/html

   # echo server20.example.com > index.html

   #  vim /etc/httpd/conf/httpd.conf

    # Listen 12.34.56.78:80

Listen 8080     #修改http端口,防止和varnish端口冲突

 

   #  /etc/init.d/httpd start

   #  netstat -antlp   #查看http 8080 端口是否开启

        

   #  vim /etc/sysconfig/varnish

 

     VARNISH_LISTEN_PORT=80   # varnish端口

 

  #  /etc/init.d/varnish start

 

    [root@server20 html]# iptables -L   

Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination    #查看本机火墙是否关闭

   

[root@foundation44 Desktop]# curl -I 172.25.254.20

HTTP/1.1 404 westos cache

Server: Varnish

Content-Type: text/html; charset=utf-8

Retry-After: 5

Content-Length: 398

Accept-Ranges: bytes

Date: Wed, 29 Jun 2016 10:11:45 GMT

X-Varnish: 1112141971

Age: 0

Via: 1.1 varnish

Connection: close

X-Cache: MISS from westos cache   #此时未命中,说明还没有缓存

 

[root@foundation44 Desktop]# curl -I 172.25.254.20

HTTP/1.1 404 westos cach

Server: Varnish

Content-Type: text/html; charset=utf-8

Retry-After: 5

Content-Length: 398

Accept-Ranges: bytes

Date: Wed, 29 Jun 2016 10:15:02 GMT

X-Varnish: 1112141972

Age: 0

Via: 1.1 varnish

Connection: close

X-Cache: HIT from westos cache    #此时命中,说明已经有缓存

 

 

 

   #  vim /etc/varnish/default.vcl

   backend web2 {

   .host = "172.25.254.21";

   .port = "80";

  }

   director lb random  {     #把多个后端聚合在一起

{ .backend = web1;

  .weight = 1;

 }

 

{ .backend = web2;

  .weight = 2;

}

}

 

  sub vcl_recv {

if (req.http.host ~ "^(www.)?westos.org") {

set req.http.host = "www.westos.org";

set req.backend = lb;

return(pass);            #为了方便,所以定义不缓存

} elsif (req.http.host ~ "^bbs.westos.org") {

set req.backend = web2;

} else {

 error 404 "westos cache";

}

}        #如果访问其他会报错 404

#  /etc/init.d/varnish reload

 

server2上进行的操作

 yum install httpd -y

    # cd /var/www/html

    # echo server21.example.com > index.html

    #  /etc/init.d/httpd start

   

   #  vim /etc/httpd/conf/httpd.conf

NameVirtualHost  *:80

 

<VirtualHost *:80>

        DocumentRoot /var/www/html

        ServerName www.westos.org

        serveralias westos.org

</VirtualHost>

 

<VirtualHost *:80>

        DocumentRoot /var/www/virtualhost/bbs

        ServerName bbs.westos.org

</VirtualHost>

 

 

   #  mkdir -p  /var/www/virtualhost/bbs

   #  cd /var/www/virtualhost/bbs/

   #  echo bbs.example.com > index.html  

 

   #  /etc/init.d/httpd restart

   

   #  vim /etc/httpd/conf/httpd.conf

 

   # /etc/init.d/httpd restart

   

   

 

然后在主机上加上 server1上和server2上相关的解析,在主机上火狐访问,或者用 curl   -I  www.westos.org

 

 

至于varnish的推送更新发布目录内容做的时候出错