码迷,mamicode.com
首页 > 系统相关 > 详细

linux 中varnish服务

时间:2018-09-14 01:19:11      阅读:278      评论:0      收藏:0      [点我收藏+]

标签:本地   使用   3.0   root   分享图片   x86   var   web   解析   

一、安装varnish
在server1中安装两个包
varnish-3.0.5-1.el6.x86_64.rpm
varnish-libs-3.0.5-1.el6.x86_64.rpm
1.在server1中(varnish)配置varnish服务
vim /etc/sysconfig/varnish
VARNISH_LISTEN_PORT=80      ##varnish监听端口
技术分享图片

 

vim /etc/varnish/default.vcl
backend default {
.host = "172.25.8.2";
.port = "80";
}
技术分享图片

 


然后开启服务
/etc/init.d/varnish  start
 

测试
新开一台虚拟机(server2)
yum install httpd
/etc/init.d/httpd start
vim /var/www/html/index.html
<h1>www.westos.org-sever2</h1>

在浏览器中输入172.25.8.1
会出现server2index.html内容
技术分享图片

 


二、缓存命中
在varnish中:
vim default.vcl
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);
}
 
 
/etc/init.d/varnish reload                 ##使用reload重新加载
 
 
 
测试
 
 
curl www.westos.org
www.westos.org-sever2
vim /etc/hosts
172.25.8.1 server1 www.westos.org   www.linux.org  westos.org                                  ##加入本地解析
curl -I www.westos.org
技术分享图片

 技术分享图片

 


三、varnishadm 清除缓存
varnishadm ban.url .*$        清除所有
varnishadm ban.url /index.html    清除 index.html 页面缓存
varnishadm ban.url /admin/$     清除 admin 目录缓存

四、定义多个不同域名站点的后端服务器
再开启一台虚拟机(server3)
yum install httpd
vim /var/www/html/index.html
<h1>www.linux.org</h1>
在varnish中:
vim default.vcl
backend web1 {
  .host = "172.25.8.2";
  .port = "80";
}
backend web2 {
  .host = "172.25.8.3";
  .port = "80";
}
sub vcl_recv {
if (req.http.host ~ "^(www.)?westos.org") {
set req.http.host = "www.westos.org";
set req.backend = lb;
} elsif (req.http.host ~ "^www.linux.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
 
技术分享图片

 


/etc/init.d/varnish reload   重载

测试:
curl www.westos.org
www.westos.org-sever2
curl westos.org
www.westos.org-sever2
curl www.linux.org
www.linux.org
技术分享图片

 

 
五、负载均衡
在server3中:
vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80
技术分享图片

 


<VirtualHost *:80>
    DocumentRoot /var/www/html
    ServerName www.linux.org
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /www1
    ServerName www.westos.org
</VirtualHost>
 
 
在server3中
mkdir /www1
vim /www1/index.html
<h1>www.westos.org-server3</h1>
/etc/init.d/httpd restart
[root@server3 ~]# curl www.linux.org
<h1>www.linux.org</h1>
[root@server3 ~]# curl www.westos.org
<h1>www.westos.org-server3</h1>

在varnish中:
vim default.vcl
backend web1 {
  .host = "172.25.8.2";
  .port = "80";
}
backend web2 {
  .host = "172.25.8.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;
#return (pass)        加入此行可以更加直观看到实验效果,正常情况下不加
} elsif (req.http.host ~ "^www.linux.org") {
set req.backend = web2;
} else {error 404 "westos cache";
}
}
 
 
技术分享图片

 


/etc/init.d/varnish reload

测试:实现负载均衡
当server2的httpd闭
[root@foundation8 ~]# curl westos.org/index.html
<h1>www.westos.org-server3</h1>
[root@foundation8 ~]# curl westos.org/index.html
<h1>www.westos.org-server3</h1>
技术分享图片

 


当server3的httpd闭
[root@foundation8 ~]# curl westos.org/index.html
<h1>www.westos.org-sever2</h1>
[root@foundation8 ~]# curl westos.org/index.html
<h1>www.westos.org-sever2</h1>
 技术分享图片

 


当server2和server3的http都开启
[root@foundation8 ~]# curl westos.org
<h1>www.westos.org-server3</h1>
[root@foundation8 ~]# curl westos.org
<h1>www.westos.org-sever2</h1>
[root@foundation8 ~]# curl westos.org
<h1>www.westos.org-server3</h1>
 
技术分享图片

 

 
六、cdn推送平台搭建
 
在varnish主机上
 
yum install httpd
vim /etc/httpd/conf/http.conf
将监听端口改为8080,防止和varnish主机80端口冲突
技术分享图片

 


/etc/init.d/httpd restart
下载bansys.zip包
 
 yum install php
yum install unzip
unzip bansys.zip  -d /var/www/html
cd /var/www/html/bansys
mv * ..
cd ..
vim config.php
/etc/init.d/httpd start
<?php

 //varnish主机列表
 //可定义多个主机列表
 $var_group1 = array(
                        ‘host‘ => array(‘172.25.8.1‘),
                                                ‘port‘ => ‘80‘,      
                    );
 

 //varnish群组定义
 //对主机列表进行绑定
 $VAR_CLUSTER = array(
                         ‘www.westos.org‘ => $var_group1,
                     );
 
 
技术分享图片

 

vim /etc/varnish/default.vcl
acl westos {
"127.0.0.1";
"172.25.8.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";
}
 技术分享图片

技术分享图片

 

 
 
技术分享图片

 

 

linux 中varnish服务

标签:本地   使用   3.0   root   分享图片   x86   var   web   解析   

原文地址:https://www.cnblogs.com/zhengyipengyou/p/9642532.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!