实验环境

  • varnish ——172.25.54.5 server1(虚拟机test1)
  • apache ——172.25.54.6 server2(虚拟机test2)
  • apache ——172.25.54.7 server3(虚拟机test3)

每个实验都在前一个实验的基础上

实验一、简单实现varnish

配置varnish服务器(server1)

  • 安装varnish yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y
    varnish 安装包
  • 配置varnish服务器server1
[root@server1 ~]# yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y
[root@server1 ~]# cd /etc/varnish/
[root@server1 varnish]# ls
default.vcl  secret
[root@server1 varnish]# ll default.vcl
-rw-r--r-- 1 root root 3119 Dec  2  2013 default.vcl
[root@server1 varnish]# ll secret
-rw------- 1 root root 37 Jul 28 14:00 secret
[root@server1 varnish]# vim default.vcl  ##配置一个后端服务器7 backend default {8   .host = "172.25.54.6";9   .port = "80";10 }
[root@server1 varnish]# vim /etc/sysconfig/varnish
##配置varnish服务端口66 VARNISH_LISTEN_PORT=80
[root@server1 varnish]# sysctl -a | grep file
fs.file-nr = 512    0   98862
fs.file-max = 98862
[root@server1 varnish]# cd /lib64/security/
[root@server1 security]# ll pam_limits.so
-rwxr-xr-x. 1 root root 18592 Oct  7  2013 pam_limits.so
[root@server1 security]# vim /etc/security/limits.conf 52 varnish         -       nofile          9800053 varnish         -       memlock         8200054 varnish         -       nproc           unlimited
[root@server1 security]# /etc/init.d/varnish start
Starting Varnish Cache:                                    [  OK  ]
[root@server1 security]# cd /etc/varnish/
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is reload_2018-07-28T14:32:35
Using new config name reload_2018-07-28T14:33:25
VCL compiled.available       0 boot
available       0 reload_2018-07-28T14:32:35
active          0 reload_2018-07-28T14:33:25Done
[root@server1 varnish]#
  • apache服务器server2
[root@server2 html]# yum install httpd -y
[root@server2 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.25.54.2 for ServerName[  OK  ]
[root@server2 ~]# cd /var/www/html/
[root@server2 html]# vim index.html
[root@server2 html]# cat index.html
www.westos.org - server2
[root@server2 html]#
  • 真机测试
[root@foundation54 ~]# vim /etc/hosts
[root@foundation54 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.54.5 www.westos.org bbs.westos.org westos.org
[root@foundation54 ~]# curl www.westos.org
<h1>www.westos.org - server2</h1>
[root@foundation54 ~]# 

实验二、查看缓存情况

  • 配置server1
[root@server1 varnish]# vim default.vcl12 sub vcl_deliver {13 if (obj.hits > 0) {14 set resp.http.X-Cache = "HIT from westos cache";   ##命中缓存15 }16 else {17 set resp.http.X-Cache = "MISS from westos cache";  ##未命中缓存18 }19 return (deliver);20 }
[root@server1 varnish]# /etc/init.d/varnish stop
Stopping Varnish Cache:                                    [  OK  ]
[root@server1 varnish]# /etc/init.d/varnish start
Starting Varnish Cache:                                    [  OK  ]
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-07-28T14:58:29
VCL compiled.available       0 boot
active          0 reload_2018-07-28T14:58:29Done
[root@server1 varnish]#
  • 真机测试缓存命中

    清除缓存
    [root@server1 varnish]# varnishadm ban.url /index.html
    再测试

    没有改变,是因为存在浏览器缓存的问题,用 curl 测试


清除缓存
[root@server1 varnish]# varnishadm ban.url /index.html

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

  • 配置server1
[root@server1 varnish]# vim default.vcl ##定义多个不同域名站点的后端服务器7 backend web1 {8   .host = "172.25.54.6";9   .port = "80";10 }11 12 backend web2 {13   .host = "172.25.54.7";14   .port = "80";15 }##当访问 www.westos.org 域名时从 web1 上取数据,##访问 bbs.westos.org 域名时到 web2 取数据,##访问其他页面报错17 sub vcl_recv {18 if (req.http.host ~ "^(www.)?westos.org") {19 set req.http.host = "www.westos.org";20 set req.backend = web1;21 } elsif (req.http.host ~ "^bbs.westos.org") {22 set req.backend = web2;23 } else {error 404 "westos cache";24 }25 }26 27 sub vcl_deliver {28 if (obj.hits > 0) {29 set resp.http.X-Cache = "HIT from westos cache";30 }31 else {32 set resp.http.X-Cache = "MISS from westos cache";33 }34 return (deliver);35 }
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is reload_2018-07-28T14:58:29
Using new config name reload_2018-07-28T15:19:24
VCL compiled.available       0 boot
available       2 reload_2018-07-28T14:58:29
active          0 reload_2018-07-28T15:19:24Done
[root@server1 varnish]# 
  • 配置server3
[root@server3 ~]# yum install httpd -y
[root@server3 ~]# /etc/init.d/httpd start
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 172.25.54.3 for ServerName[  OK  ]
[root@server3 ~]# cd /var/www/html/
[root@server3 html]# ls
[root@server3 html]# vim index.html
[root@server3 html]# cat index.html
bbs.westos.org
[root@server3 html]#
  • 真机测试


实验四、把多个后端聚合为一个组

  • 配置server3
[root@server3 html]# vim /etc/httpd/conf/httpd.conf 990 NameVirtualHost *:80
1010 <VirtualHost *:80>
1011     DocumentRoot /var/www/html
1012     ServerName bbs.westos.org
1013 </VirtualHost>
1014
1015 <VirtualHost *:80>
1016     DocumentRoot /www1
1017     ServerName www.westos.org
1018 </VirtualHost>
[root@server3 html]# mkdir /www1
[root@server3 html]# cd /www1/
[root@server3 www1]# ls
[root@server3 www1]# vim index.html
[root@server3 www1]# cat index.html
www.westos.org - server3
[root@server3 www1]# /etc/init.d/httpd restart
[root@server3 www1]# vim /etc/hosts
[root@server3 www1]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.25.54.7 server7 www.westos.org bbs.westos.org
[root@server3 www1]# curl www.westos.org
www.westos.org - server3
[root@server3 www1]# curl bbs.westos.org
bbs.westos.org
[root@server3 www1]#
  • 配置server1
[root@server1 varnish]# vim default.vcl 17 director tutu round-robin {18 {.backend = web1;}19 {.backend = web2;}20 }21 22 sub vcl_recv {23 if (req.http.host ~ "^(www.)?westos.org") {24 set req.http.host = "www.westos.org";25 set req.backend = tutu;26 return (pass);   #为了测试方便,不进行缓存27 } elsif (req.http.host ~ "^bbs.westos.org") {28 set req.backend = web2;29 } else {error 404 "westos cache";30 }31 }
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is reload_2018-07-28T15:19:24
Using new config name reload_2018-07-28T15:50:54
VCL compiled.available       0 boot
available       0 reload_2018-07-28T14:58:29
available       2 reload_2018-07-28T15:19:24
active          0 reload_2018-07-28T15:50:54Done
[root@server1 varnish]#
  • 真机测试
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server2
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server3
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server2
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server3
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server2
[root@foundation54 ~]# curl www.westos.org
www.westos.org - server3
[root@foundation54 ~]#

实验五、varnish cdn 推送平台

  • 配置server1
[root@server1 ~]# yum install lftp php unzip -y
[root@server1 ~]# ls
bansys.zip
[root@server1 ~]# unzip bansys.zip -d /var/www/html/
[root@server1 ~]# cd /var/www/html/
[root@server1 html]# ls
bansys
[root@server1 html]# cd bansys/
[root@server1 bansys]# ls
class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 bansys]# mv * ..
[root@server1 bansys]# ls
[root@server1 bansys]# cd ..
[root@server1 html]# ls
bansys  class_socket.php  config.php  index.php  purge_action.php  static
[root@server1 html]# vim config.php

[root@server1 html]# yum install httpd -y
[root@server1 html]# vim /etc/httpd/conf/httpd.conf 136 Listen 8080   ##为了避免与varnish冲突
[root@server1 html]# /etc/init.d/httpd start
[root@server1 html]# netstat -antpl
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 :::8080                     :::*                        LISTEN      1422/httpd


[root@server1 html]# cd /etc/varnish/
[root@server1 varnish]# ls
default.vcl  secret
[root@server1 varnish]# vim default.vcl
##添加7 acl westos {8 "127.0.0.1";9 "172.25.54.0"/24;10 }sub vcl_recv {28 ##在函数内添加29 if (req.request == "BAN") {30 if (!client.ip ~ westos) {31 error 405 "Not allowed.";32 }33 ban("req.url ~ " + req.url);34 error 200 "ban added";35 }36 #####37 if (req.http.host ~ "^(www.)?westos.org") {38 set req.http.host = "www.westos.org";39 set req.backend = tutu;41 } elsif (req.http.host ~ "^bbs.westos.org") {42 set req.backend = web2;43 } else {error 404 "westos cache";44 }45 }
[root@server1 varnish]# /etc/init.d/varnish reload
Loading vcl from /etc/varnish/default.vcl
Current running config name is boot
Using new config name reload_2018-07-29T09:43:47
VCL compiled.available       2 boot
active          0 reload_2018-07-29T09:43:47Done
[root@server1 varnish]# 





浏览器页面未改变是因为浏览器缓存导致的

  • 浏览器推送+shell的curl测试

[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server3</h1>
[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server3</h1>
[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server3</h1>
[root@foundation54 ~]#


[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server2</h1>
[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server2</h1>
[root@foundation54 ~]# curl www.westos.org/index.html
<h1>www.westos.org - server2</h1>
[root@foundation54 ~]#

varnish的服务配置(实验说明)相关推荐

  1. Linux实验5 Samba 服务配置实验实验报告(部分英文)

    实验题目 实验5 Linux实验5   Samba 服务配置实验实验报告  Samba 服务配置实验 实验目的 (1) Master the configuration of Samba server ...

  2. 部署Linux服务器实验报告,Linux服务器学习----tomcat 服务配置实验报告(一)

    一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境 1. tomcat 服务器 centos7 对应主机 ip 为 10.10.6 ...

  3. 华为路由器DCHP服务配置实验

    DHCP实验(一) 一.实验拓扑图 二.实验配置 R1: [R1]dhcp enable    启动dhcp服务 [R1]ip pool test    设置一个名为test的地址池 [R1-ip-p ...

  4. Red Hat 服务配置实验day02

    day02 1.再配置两台相同环境的 分别取名为client1,client2,细节不说了,克隆不克隆随你,mac别一样就行~~ 2.配置网卡 sever,client1,client2,配置相同的虚 ...

  5. 计算机网络email服务的配置,计算机网络邮件配置实验报告

    <计算机网络邮件配置实验报告>由会员分享,可在线阅读,更多相关<计算机网络邮件配置实验报告(4页珍藏版)>请在人人文库网上搜索. 1.实验报告实验题目:配置邮件服务器姓名:院系 ...

  6. 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解

    前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...

  7. 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题

    [Oracle RAC+DG实验]Oracle RAC+ASM+DataGuard配置实验记录+常见问题 1.环境规划: ---RAC环境介绍(primary database)            ...

  8. DNS域名解析服务配置会不会?

    目录 微信公众号[厦门微思网络] 一.DNS 1.1 DNS 服务介绍 DNS(Domain Name System,域名系统),因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更 ...

  9. ac ap方案 华为_华为无线_AC+AP小型无线网络配置实验_v1

    [如果在实验中有什么疑问,欢迎关注微信公众号"IT后院"给我留言,我会抽空回答你的问题] 华为无线-AC+AP小型无线网络配置实验_v1 网络结构图: 步骤一:配置网络连通性 SW ...

最新文章

  1. Kali Linux发布2020.1a版本
  2. 微信小程序网络请求代码片段
  3. 【WP开发问题1】 请确保已为开发人员解锁此设备。有关开发人员解锁的详细信息,...
  4. OpenCASCADE绘制测试线束:简单的向量代数和测量之矢量代数命令
  5. SparkSQL之thriftserver/beeline的使用
  6. 【LCT】大融合(luogu 4219)
  7. Java 8 Optional不仅用于替换空值
  8. plpythonu_PostgreSQL PL/Python 函数
  9. ExtJs2.0学习系列(12)--Ext.TreePanel之第一式
  10. UI设计需要学习什么软件?
  11. 人工智能重点汇总(搜索策略、博弈、贝叶斯、SVM、神经网络、弧相容、SVM、决策树、反向传播、卷积神经网络)
  12. diff算法_详解虚拟 DOM 与 DOM-Diff 算法,面试官放码过来!
  13. 遥感动态监测实验(以福州为例)
  14. php选择不同店发送不同邮件,php – WooCommerce电子邮件通知:不同城市的不同电子邮件收件人...
  15. 产品优化策略,有效提升产品自身竞争力,我赌你一定没用过
  16. 如何正确撰写sci论文中的作者信息
  17. LinuxC:锁、条件变量、信号量实现线程间的同步 生产者与消费者 pthread_mutex_init pthread_cond_init sem_init
  18. 阿里云 域名 服务条款
  19. EXCEL地理工具--小O地图EXCEL插件0705版 2022.4.28发布
  20. The tomcat server configuration at /sever/tomcat v9.0 localhost-config is.......错误解析

热门文章

  1. 计划订单号码范围用完导致MRP无法运行
  2. 采购订单单位与基本计量单位不一致问题案例
  3. S/4 HANA – 是ERP皇帝的新装,还是SAP王国的新基石
  4. 提高项目执行力的六板斧
  5. SAP外向交货单中的批次拆分应用于免费货物的小问题
  6. 干掉耐克的,绝不会是下一个耐克?
  7. 文娱打卡百强,重工智造升级,互联网进入“长沙时间”
  8. pilt图像处理_详解python opencv、scikit-image和PIL图像处理库比较
  9. java spring 登录验证_详解使用Spring3 实现用户登录以及权限认证
  10. 有虚拟服务器的无线路由,无线路由,虚拟服务器,。怎么办?