linux CDN varnish

配置varnish

(1)在server1中安装varnish
varnish-3.0.5-1.el6.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm
yum install varnish-*

在这里插入图片描述

(2)修改varnish监听端口为80
vim /etc/sysconfig/varnish

在这里插入图片描述

(3)查看内核允许打开文件的最大数
sysctl -a | grep file

查看varnish能打开的最大文件数
增大内存可以增加打开文件最大数

在这里插入图片描述
在这里插入图片描述

4)设置主机安全限制
cd /etc/security/
vim limits.conf
##在最后添加
varnish - 	nofile 		131072
varnish -	memlock		82000          ##default log size
varnish - 	nproc		unlimited    ##maximum number of threads

在这里插入图片描述

5)设置varnish 默认文件 ##修改varnish监听的网络服务器的ip
cd /etc/varnish/
vim default.vcl
反向代理172.25.38.2

在这里插入图片描述

/etc/init.d/varnish start   ##开启服务

在这里插入图片描述

pa -ax | grep varnish   ##查看varnish开启的进程
                              一个root进程 监听子进程当子进程产生错误关闭时 root进程再fork一个

在这里插入图片描述

cat /proc/1111/status   ##查看进程信息

在这里插入图片描述

6)在 172.25.38.2中安装apache ##server2作为网络服务器

设置主页

vim /var/www/html/index.html
/etc/init.d/httpd start    ##开启服务

在这里插入图片描述
在这里插入图片描述

7)在页面中访问172.25.38.1

在这里插入图片描述

实验 查看缓存命中情况
vim /etc/varnish/default.vcl
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}




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

在这里插入图片描述
重新加载varnish

/etc/init.d/varnish reload

在这里插入图片描述
客户端测试
添加本地解析

172.25.38.1 server1 www.westos.org bbs.westos.org

在这里插入图片描述

curl -I www.westos.org

curl -I www.westos.org

在这里插入图片描述
在这里插入图片描述
##在服务端

varnishadm ban.url .*$ ###手动清除全部缓存
varnishadm ban.url /index.html

在这里插入图片描述
在这里插入图片描述

实验 定义多个不同域名站点的后段服务器
vim /etc/varnish/default.vcl
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.38.3";
  .port = "80";
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = web1;
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

在这里插入图片描述

/etc/init.d/varnish reload

在这里插入图片描述
server2:配置网络服务器

server3:配置网络服务器
在这里插入图片描述
测试主机:添加本地解析

curl www.westos.org
curl bbs.westos.org

在这里插入图片描述

实验 负载均衡设置轮播

server1:

vim /etc/varnish/default.vcl
backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.38.3";
  .port = "80";
}


director lb round-robin {
{.backend = web1;}
{.backend = web2;}
}

sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;      ##使用lb 
return(pass);               ##一般不会设置,只为看轮播效果
} elsif (req.http.host ~ "^bbs.westos.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}

在这里插入图片描述
server2:

vim /var/www/html/index.html

server3:设定虚拟主机 使bbs.westos.org访问另一个页面

vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80


<VirtualHost *:80>
    DocumentRoot /www
    ServerName www.westos.org
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot /bbs
    ServerName bbs.westos.org
</VirtualHost>

在这里插入图片描述

mkdir /www /bbs
vim /www/index.html

在这里插入图片描述

vim /bbs/index.html

在这里插入图片描述

/etc/init.d/httpd restart

在这里插入图片描述
测试主机:设置域名解析

curl www.westos.org
curl www.westos.org
curl bbs.westos.org

在这里插入图片描述
##使用bansys.zip进行批量推送清除缓存

server1:

yum install httpd,php,unzip
unzip bansys.zip -d /var/www/html
cd /var/www/html
mv * ../
cd ..
rm -rf bansys

在这里插入图片描述

vim config.php
<?php

 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        'host' => array('172.25.38.1'),
                                                'port' => '8080',                
                    );

 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         'www.westos.org' => $var_group1,
                     );

 //varnish版本
 //2.x和3.x推送命令不一样
 $VAR_VERSION = "3";

?>

在这里插入图片描述

vim /etc/http/conf/http.conf
Listen 8080                           ##防止与varnish设置的80端口冲突

在这里插入图片描述

vim /etc/varnish/default.vcl
acl westos {
"127.0.0.1";
"172.25.38.0"/24;                    ##设置允许哪些用户修改
}

backend web1 {
  .host = "172.25.38.2";
  .port = "80";
}

backend web2 {
  .host = "172.25.38.3";
  .port = "80";
}

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/httpd restart
/etc/init.d/varnish reload

在这里插入图片描述

在浏览器中输入

172.25.38.1:8080


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值