使用Varnish加速Web

1.1 问题

通过配置Varnish缓存服务器,实现如下目标:

使用Varnish加速后端Apache Web服务

使用varnishadm命令管理缓存页面

使用varnishstat命令查看Varnish状态

1.2 方案

通过源码编译安装Varnish缓存服务器

编译安装Varnish软件

复制启动脚本与配置文件

修改配置文件,缓存代理源Web服务器,实现Web加速功能

使用3台RHEL7虚拟机,其中一台作为Web服务器(192.168.2.100)、一台作为Varnish代理服务器(192.168.4.5,192.168.2.5),另外一台作为测试用的Linux客户机(192.168.2.100)对于Web服务器的部署,此实验中仅需要安装httpd软件、启动服务,并生成测试首页文件即可,默认httpd网站根路径为/var/www/html,首页文档名称为index.html

1.3 步骤

实现此案例需要按照如下步骤进行。

步骤一:构建Web服务器

1)使用yum安装web软件包

[root@web ~]# yum  -y  install  httpd

2)启用httpd服务,并设为开机自动运行

[root@web ~]# systemctl start httpd  ;  systemctl enable httpd

httpd服务默认通过TCP 80端口监听客户端请求:

[root@web ~]# netstat  -anptu  |  grep httpd

tcp        0        0        :::80        :::*        LISTEN        2813/httpd

3)为Web访问建立测试文件

在网站根目录/var/www/html下创建一个名为index.html的首页文件

[root@web ~]# echo "这是Varnish的测试页面..A.." > /var/www/html/index.html

步骤二:部署Varnish缓存服务器

1)编译安装软件

[root@Proxy ~]# yum -y install gcc readline-devel pcre-devel    //安装软件依赖包

[root@Proxy ~]# useradd -s /sbin/nologin varnish                //创建账户

[root@Proxy ~]# tar -xzf varnish-3.0.6.tar.gz

[root@Proxy ~]# cd varnish-3.0.6

[root@Proxy varnish-3.0.6]# ./configure --prefix=/usr/local/varnish

[root@Proxy varnish-3.0.6]# make && make install

2)复制启动脚本及配置文件

[root@Proxy varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish

[root@Proxy varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish

[root@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

[root@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/bin/* /usr/bin/

3)修改Varnish文件

[root@Proxy ~]# vim /etc/sysconfig/varnish

66行:VARNISH_LISTEN_PORT=80                                #默认端口

89行:VARNISH_STORAGE_SIZE=60M                                #定义缓存大小

92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"        #基于内存方式缓存

4)修改代理配置文件

[root@Proxy ~]# mkdir /etc/varnish

[root@Proxy ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/

[root@Proxy~]# uuidgen > /etc/varnish/secret

[root@Proxy ~]# vim  /etc/varnish/default.vcl

backend default {

.host = "192.168.2.100"; //改成口端服务器的IP

.port = "80";    //改称80端口

}

[root@Proxy varnish-3.0.6]# /etc/init.d/varnish

Usage: /etc/init.d/varnish {start|stop|status|restart|condrestart|try-restart|reload|force-reload} //是一个自带的脚本,启服务..等用这个脚本就可以啦

步骤三:客户端测试

1)客户端开启浏览器访问

[root@client ~]# curl http://192.168.4.5

步骤四:相关技术点

1)查看varnish日志

[root@Proxy ~]# varnishlog                    //varnish日志

[root@Proxy ~]# varnishncsa                    //访问日志

2)更新缓存数据,在后台web服务器更新页面内容后,用户访问代理服务器看到的还是之前的数据,说明缓存中的数据过期了需要更新(默认也会自动更新,但非实时更新)。

[root@Proxy ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082

会进到一个这样的页面

200

-----------------------------

Varnish Cache CLI 1.0

-----------------------------

Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-3.0.6 revision 1899836

Type 'help' for command list.

Type 'quit' to close CLI session.

varnish> ban.url 页面文件名

ban.url 页面文件名

//清空缓存数据,支持正则表达式

转载于:https://blog.51cto.com/caotian/1979762

使用Varnish加速Web相关推荐

  1. squid反向代理(实现缓存)加速web

    实验:squid反向代理服务器加速web -by zlong 一.实验环境 (1)两台linux主机(Red Hat Enterprise Linux),分别是RHEL1-WEB和RHEL2-SQUI ...

  2. 加速 Web 开发的 23 款前端开发工具

    市面上有许多前端开发工具可以加速 Web 开发工作.本文是对 2019 年顶级 Web 开发工具的一次精选汇总,分别介绍了每款工具的关键特性,并已附上下载链接. Novi Builder Novi B ...

  3. web前端培训学习之加速Web开发

    Node.js有几个框架,使web应用程序开发更加方便和高效.让我们来看看一些最强大的Node.js框架,它们可以为你的客户加速web应用程序开发.想学习Node.js框架的小伙伴可以参加千锋重庆We ...

  4. varnish 加速

    Varnish是一个轻量级的Cache和反向代理软件,先进的设计理念和成熟的设计框架是Varnish的主要特点,现在的Varnish总共代码量不大,功能上虽然在不断改进,但是还需要继续丰富和加强.下面 ...

  5. Hobby开挂!加速web编码

    Hobby为什么可以加速编写web页面?其中一个主要特性就是代码的缩写风格.先举一个例子: 如果编写下面的一段代码,你需要敲多少字,用多长时间? <div id="page" ...

  6. squid2.6加速WEB支持虚拟主机配置心得体会 .txt

    人一台web服务器,日流量约10万,上面有好几个虚拟主机,近日装上Squid 2.6进行WEB加速,Squid 和Apache均在同一台服务器上面,效果非常明显,看到论坛上好多人问如何配置squid2 ...

  7. 应用squid全面加速web(全)

    ############################################### 模式1:Squid对应多台web服务器 在vi /etc/hosts中:加入内部的DNS解析,比如: 1 ...

  8. Squid反向代理加速WEB

    简介: Linux 下著名代理软件Squid, 通常被用作上网代理,比如代理内网的Web服务,起到加速浏览的作用,一般可以设为透明代理. 透明代理设置主要有: ACL设置 acl all src 0. ...

  9. 迅雷下载百度云中的内容_在云中加速Web内容交付的最佳实践

    本系列文章 基于云的以资产为中心的协作的最佳实践:使用Rational Asset Manager实现协作多租户 使用Tivoli Access Manager在多租户云解决方案中进行访问控制的最佳实 ...

最新文章

  1. json schema多种形式_什么是JSON Schema?
  2. java爬虫问题二: 使用jsoup爬取数据class选择器中空格多选择怎么解决
  3. jfoenix jdk8 pom依赖
  4. write up 杂项:telenet
  5. RabbitMQ入门(四)-Routing(路由)
  6. Linux 2.6 完全公平调度算法CFS(Completely Fair Scheduler) 分析
  7. 使用xUnit为.net core程序进行单元测试(中)
  8. Java并发编程实战————Semaphore信号量的使用浅析
  9. 基于visual Studio2013解决C语言竞赛题之0705矩阵转置
  10. 嵌入式工具——tcpdump
  11. Unable to find setter method for attribute: [commandName]
  12. java 任务定时调度(定时器)
  13. 四毛子算法与+-1RMQ
  14. 面试字节跳动之感谢篇
  15. java里人带狗散步,不想带狗狗出门散步,告诉你5个遛狗的好处,不仅仅只有狗狗受益...
  16. YBT 6 数学基础
  17. HR不得不知的Excel技能——模板篇
  18. ext2和ext3的主要区别
  19. PIX飞控电流计设置
  20. rustdesk 自建服务器配置 docker方案

热门文章

  1. 迅雷的user-agent
  2. winform取CPU编号、MAC地址、硬盘信息、IP地址、串口信息
  3. Tomcat企业级应用
  4. js弹出对话框的方法总结
  5. iOS -- 十进制、十六进制字符串,byte,data等之间的转换
  6. QT学习笔记之QTableView设置属性的方法
  7. 浏览器加载和渲染html的顺序
  8. MYSQL-用户操作
  9. 将DevExpress.Utils.ImageCollection变量的image导出
  10. OleDb执行Oracle带自定义函数的SQL深度历险