varnish的服务配置(实验说明)
实验环境
- 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的服务配置(实验说明)相关推荐
- Linux实验5 Samba 服务配置实验实验报告(部分英文)
实验题目 实验5 Linux实验5 Samba 服务配置实验实验报告 Samba 服务配置实验 实验目的 (1) Master the configuration of Samba server ...
- 部署Linux服务器实验报告,Linux服务器学习----tomcat 服务配置实验报告(一)
一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境 1. tomcat 服务器 centos7 对应主机 ip 为 10.10.6 ...
- 华为路由器DCHP服务配置实验
DHCP实验(一) 一.实验拓扑图 二.实验配置 R1: [R1]dhcp enable 启动dhcp服务 [R1]ip pool test 设置一个名为test的地址池 [R1-ip-p ...
- Red Hat 服务配置实验day02
day02 1.再配置两台相同环境的 分别取名为client1,client2,细节不说了,克隆不克隆随你,mac别一样就行~~ 2.配置网卡 sever,client1,client2,配置相同的虚 ...
- 计算机网络email服务的配置,计算机网络邮件配置实验报告
<计算机网络邮件配置实验报告>由会员分享,可在线阅读,更多相关<计算机网络邮件配置实验报告(4页珍藏版)>请在人人文库网上搜索. 1.实验报告实验题目:配置邮件服务器姓名:院系 ...
- 运维企业专题(10)RHCS集群工具——FENCE搭建、高可用服务配置详解
前言:FENCE工具的原理及作用 FENCE设备是RHCS集群中必不可少的一个组成部分,通过FENCE设备可以避免因出现不可预知的情况而造成的"脑裂"现象,FENCE设备的出现,就 ...
- 【Oracle RAC+DG实验】Oracle RAC+ASM+DataGuard配置实验记录+常见问题
[Oracle RAC+DG实验]Oracle RAC+ASM+DataGuard配置实验记录+常见问题 1.环境规划: ---RAC环境介绍(primary database) ...
- DNS域名解析服务配置会不会?
目录 微信公众号[厦门微思网络] 一.DNS 1.1 DNS 服务介绍 DNS(Domain Name System,域名系统),因特网上作为域名和 IP 地址相互映射的一个分布式数据库,能够使用户更 ...
- ac ap方案 华为_华为无线_AC+AP小型无线网络配置实验_v1
[如果在实验中有什么疑问,欢迎关注微信公众号"IT后院"给我留言,我会抽空回答你的问题] 华为无线-AC+AP小型无线网络配置实验_v1 网络结构图: 步骤一:配置网络连通性 SW ...
最新文章
- Kali Linux发布2020.1a版本
- 微信小程序网络请求代码片段
- 【WP开发问题1】 请确保已为开发人员解锁此设备。有关开发人员解锁的详细信息,...
- OpenCASCADE绘制测试线束:简单的向量代数和测量之矢量代数命令
- SparkSQL之thriftserver/beeline的使用
- 【LCT】大融合(luogu 4219)
- Java 8 Optional不仅用于替换空值
- plpythonu_PostgreSQL PL/Python 函数
- ExtJs2.0学习系列(12)--Ext.TreePanel之第一式
- UI设计需要学习什么软件?
- 人工智能重点汇总(搜索策略、博弈、贝叶斯、SVM、神经网络、弧相容、SVM、决策树、反向传播、卷积神经网络)
- diff算法_详解虚拟 DOM 与 DOM-Diff 算法,面试官放码过来!
- 遥感动态监测实验(以福州为例)
- php选择不同店发送不同邮件,php – WooCommerce电子邮件通知:不同城市的不同电子邮件收件人...
- 产品优化策略,有效提升产品自身竞争力,我赌你一定没用过
- 如何正确撰写sci论文中的作者信息
- LinuxC:锁、条件变量、信号量实现线程间的同步 生产者与消费者 pthread_mutex_init pthread_cond_init sem_init
- 阿里云 域名 服务条款
- EXCEL地理工具--小O地图EXCEL插件0705版 2022.4.28发布
- The tomcat server configuration at /sever/tomcat v9.0 localhost-config is.......错误解析
热门文章
- 计划订单号码范围用完导致MRP无法运行
- 采购订单单位与基本计量单位不一致问题案例
- S/4 HANA – 是ERP皇帝的新装,还是SAP王国的新基石
- 提高项目执行力的六板斧
- SAP外向交货单中的批次拆分应用于免费货物的小问题
- 干掉耐克的,绝不会是下一个耐克?
- 文娱打卡百强,重工智造升级,互联网进入“长沙时间”
- pilt图像处理_详解python opencv、scikit-image和PIL图像处理库比较
- java spring 登录验证_详解使用Spring3 实现用户登录以及权限认证
- 有虚拟服务器的无线路由,无线路由,虚拟服务器,。怎么办?