varnish服务配置

来源:互联网 发布:python 教务系统 编辑:程序博客网 时间:2024/06/04 19:39

虚拟机封装

进行网络安装http://172.25.254.22/rhel6.5(需要dhcp提供ip

RAM:512M drive:20GB

可通过df -h进行内存查看

安装重启后:cd家目录 --->rm *

更改主机名vi /etc/sysconfig/network

hostname server1-->临时生效

更改yum vi /etc/yum.repos.d/rhel-source.repo

[rhel-source]

name=Red Hat Enterprise Linux $releasever - $basearch - Source

baseurl=http://172.25.254.22/rhel6.5

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

 

yum clean all

yum install vim lftp openssh-clients(进行scp -y

cd /etc/udev/rules.d/

rm -rf 70-persistent-net.rules

设置ip

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE="eth0"

BOOTPROTO="dhcp"

ONBOOT="yes"

#IPADDR=172.25.22.3

#PREFIX=24

vim /etc/hosts设置dns

rm -f /etc/ssh/ssh_host_*

rm -f /etc/sysconfig/iptables

chkconfig iptables off

vim /etc/sysconfig/selinux enforce-->disabled

关机poweroff

在真实主机root用户下:cd /var/lib/libvirt/images

qemu-img create -f qcow2 -b base.qcow2 vm1 512M

qemu-img create -f qcow2 -b base.qcow2 vm2 512M

qemu-img create -f qcow2 -b base.qcow2 vm3 512M

删除虚拟控制台中的base图表(不要删除真实文件),添加三个快照,并进行主机名,yum源(172.25.22.250/rhel6.5),ip配置,/etc/init.d/networkrestart

配置varnish服务

vm1中通过lftp下载这两个安装包

varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm

yum install * -y

 

vim /etc/sysconfig/varnish

VARNISH_LISTEN_PORT=80(监听端口改为80,设置完成后,可netstat -antlp命令进行查看)

vim /etc/varnish/default.vcl

定义多个不同域名站点的后端服务器

backend web1 {

 .host ="172.25.70.2";

 .port = "80";

}

backend web2 {

 .host ="172.25.70.3";

 .port = "80";

}

把多个后端聚合为一个组,并检测后端健康状况

director lb round-robin {

{.backend = web1;}

{.backend = web2;}

}

当访问 www.westos.org域名时从web1上取数据,访问 bbs.westos.org 域名时到web2取数据,访问其他页面报错

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";

}

}

查看缓存命中情况

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);

}

vm2yum install httpd -y

/etc/init.d/httpd start

vim /etc/httpd/conf/httpd.conf

NameVirtualHost *:80(端口改为80

<VirtualHost *:80>

   DocumentRoot /var/www/html

   ServerName server2

</VirtualHost>

<VirtualHost *:80>

   DocumentRoot /www/bbs

   ServerName bbs.westos.org

</VirtualHost>

<VirtualHost *:80>

   DocumentRoot /www/westos

   ServerName www.westos.org

</VirtualHost>

mkdir /www/westos

echo server2-www.westos.org > /www/westos/index.html

/etc/init.d/httpd restart

vm3yum install httpd -y

/etc/init.d/httpd start

echo '<h1>server3-www.westos.org</h1> >/var/www/html/index.html

 

### 通过 varnishadm手动清除缓存

# varnishadm ban.url .*$     清除所有

# varnishadm ban.url /index.html 清除 index.html 页面缓存

# varnishadm ban.url /admin/$  清除 admin目录缓存

varnishadm ban.url www.westos.org  #清除www.westos.org的网络缓存

 

在测试主机上做好本地解析(vim /etc/hosts)

执行curl -I www.westos.org进行检测

 

 

vm1

yum instll httpd unzip php -y

unzip bansys.zip -d /var/www/html

vim /etc/httpd/conf/httpd.confListen 80改为 8080

/etc/init.d/httpd start

cd /var/www/html/bansys/

mv * ..

cd /var/www/html

rm -rf bansys/

vim config.php

将数据库信息进行注释

$var_group1 = array(

                        'host'=> array('172.25.0.1',),

                                            'port'=> '80',

                   );

$VAR_CLUSTER = array(

                       'www.westos.org'=>$var_group1,

                   );

 

vim /etc/varnish/default.vcl

设置访问控制

acl westos {

   "127.0.0.1";

   "172.25.0.0"/24;

}

sub vcl_recv中加入

if (req.request == "BAN") {

if (!client.ip ~ westos) {

error 405 "Not allowed.";

}

ban("req.url ~ " + req.url);

error 200 "ban added";

}

/etc/init.d/varnish reload

在测试机上访问172.25.70.18080就会进入cdn推送管理页面进行测试

原创粉丝点击