Varnish实现Web站点加速
该系列文章只是本人的学习笔记,文章中的文字描述提取自《Linux鸟哥私房菜》《Linux运维之道》等书中的重点内容,部分内容是在培训Linux运维时总结的笔记,化繁为简能够在工作中快速复习掌握重点,并不代表个人立场,但转载请加出处,并注明参考文献。
Varnish 是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang使用3台Varnish代替了原来的12台Squid,性能比以前更好.
Varnish 的作者Poul-Henning Kamp是FreeBSD的内核开发者之一,他认为现在的计算机比起1975年已经复杂许多.在1975年时,储存媒介只有两种:内存与硬盘.但现在计算机系统的内存除了主存外,还包括了CPU内的L1、L2,甚至有L3快取.硬盘上也有自己的快取装置,因此Squid Cache自行处理物件替换的架构不可能得知这些情况而做到最佳化,但操作系统可以得知这些情况,所以这部份的工作应该交给操作系统处理,这就是 Varnish cache设计架构.
◆编译安装Varnish◆
1.安装依赖包
#yum install -y libtool ncurses-devel pcre-devel libxslt libedit python-imaging python-docutils
yum install -y pcre-devel python-docutils libedit-dev*
2.编译安装Varnish
wget http://varnish-cache.org/_downloads/varnish-6.0.0.tgz
tar -xzvf varnish-6.0.0.tgz
cd varnish-6.0.0/
./configure --prefix=/usr/local/varnish6
make && make install
ln -s /usr/local/varnish6/sbin/* /usr/sbin/
ln -s /usr/local/varnish6/bin/* /usr/local/bin/
cp -a /usr/local/varnish6/share/doc/varnish/example.vcl /usr/local/varnish6/default.vcl
◆Varnish实现负载均衡并实现页面缓存◆
1.编辑Varnish主配置文件,在相应的区域追加写入以下标★语句
vim /usr/local/varnish/default.vcl
15 # Default backend definition. Set this to point to your content server.
16 backend default {
17 .host = "127.0.0.1";
18 .port = "8080";
19 }
20
★ backend web1 { #均衡web主机1
★ .host="192.168.1.13";
★ .port="80"; #指定端口
★ .probe = { #开启健康检查
★ .url = "/"; #请求的URL路径
★ .interval = 5s; #查询间隔时间
★ .timeout = 1s; #超时时间
★ .window = 5; #滑动窗
★ .threshold = 3; #上次检查.window数量的多少
★ }
★ }
★ backend web2 {
★ .host="192.168.1.14"; #均衡web主机2
★ .port="80"; #指定端口
★ .probe = { #开启健康检查
★ .url = "/"; #请求的URL路径
★ .interval = 5s; #查询间隔时间
★ .timeout = 1s; #超时时间
★ .window = 5; #滑动窗
★ .threshold = 3; #上次检查.window数量的多少,
★ }
★ }
★
★ import directors; #加载directors模块
★
★ sub vcl_init { #缓存及加速-03单-高性能缓存服务器
★
★ new bar = directors.round_robin();
★ bar.add_backend(web1);
★ bar.add_backend(web2);
★
★ }
★
★ sub vcl_recv {
★
★ set req.backend_hint = bar.backend(); #指定backend
★
★ }
2.检查配置文件,并启动Varnish
varnishd -C -f /usr/local/varnish6/default.vcl #检查语法
varnishd -f /usr/local/varnish6/default.vcl #启动
pkill varnishd #关闭Varnish
varnishlog #查看Varnish日志
netstat -anpt | grep varnishd #检查是否启动
3.验证环节
elinks http://127.0.0.1/ #varnish服务器会根据算法分配流量
Varnish实现Web站点加速的更多相关文章
- WEB 服务器 加速缓存比较
Nginx 相对 Apache httpd 的优点: - 轻量级,同样起web 服务,比apache 占用更少的内存及资源 - 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的 ...
- 【读书笔记】2016.12.10 《构建高性能Web站点》
本文地址 分享提纲: 1. 概述 2. 知识点 3. 待整理点 4. 参考文档 1. 概述 1.1)[该书信息] <构建高性能Web站点>: -- 百度百科 -- 本书目录: 第1章 绪论 ...
- 《构建高性能web站点》随笔 无处不在的性能问题
前言– 追寻大牛的足迹,无处不在的“性能”问题. 最近在读郭欣大牛的<构建高性能Web站点>,读完收益颇多.作者从HTTP.多级缓存.服务器并发策略.数据库.负载均衡.分布式文件系统多个方 ...
- 手机web站点和手机app 技术选型的困惑于思考
今年一直在关注移动端技术的发展,自己也用博客园的rss接口玩了半年,关于技术选型的困惑和大家说说 一 趋势 随着手机硬件不断的升级,外加4g牌照的发放,不出2年时间移动端web站点和手机app一定会进 ...
- 有了 Docker,用 JavaScript 框架开发的 Web 站点也能很好地支持网络爬虫的内容抓取
点这里 阅读目录 用 AngularJS(以及其它 JavaScript 框架)开发的 Web 站点不支持爬虫的抓取 解决方案 为什么公开我们的解决方案 实现 AngularJS 服务 结论 Pr ...
- Web站点架构设计考虑的因素
转自http://blog.csdn.net/moshengtan/article/details/8990052 1 Web负载均衡 1.1 - 使用商业硬件实现 最经常使用的F5 与citr ...
- 构建高可用web站点学习(二)
web站点的缓存学习 缓存在web应用里面十分常见,也有各种各样的缓存,从请求开始一直到代码处理的阶段都可以采取缓存.下面就逐一介绍: 一.客户端缓存(浏览器和http方面) 前端页面缓存主要遵循ht ...
- 构建高性能WEB站点笔记三
构建高性能WEB站点笔记三 第10章 分布式缓存 10.1数据库的前端缓存区 文件系统内核缓冲区,位于物理内存的内核地址空间,除了使用O_DIRECT标记打开的文件以外,所有对磁盘文件的读写操作都要经 ...
- 构建高性能web站点笔记一
构建高性能web站点笔记 第三章 服务器并发处理能力 3.1吞吐率 描述服务器在实际运行期间单位时间内处理的请求数.也就是一定并发用户的情况下,服务器处理请求能力的量化体现. 吞吐率的前提包括: 并发 ...
随机推荐
- leetcode621
public class Solution { public int LeastInterval(char[] tasks, int n) { Dictionary<char, int> ...
- Rabbitmq 与springboot 结合
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...
- ZStack串口通信
要使用ZStack就不得不先了解ZStack的OSAL工作原理 http://blog.csdn.net/qinpeng_zbdx/article/details/20990797 http://we ...
- lastIndexOf() 找出指定元素出现的所有位置(返回的是下标数组)---lastIndexOf() 这个方法是倒叙查找,正序的是indexOf()
var indices = []; var array = ['a', 'b', 'a', 'c', 'a', 'd']; var element = 'a'; var idx = array.las ...
- CSS表单2 组件排版
<!DOCTYPE html> <html> <head> <title>单选按钮对齐</title> ...
- c#mvc实现登录
本篇介绍MVC实现登录的方式,如下: 1.通过MVC Form 表单请求实现登录 2.通过AJAX GET 请求MVC Controller 实现登录 3.通过AJAX POST 请求MVC Cont ...
- Django_models下划线__正反查询,对象正反查询
1.我们使用models对数据库进行查询的时候,想去拿到结果的时候有时直接使用".字段",有时是'[0].字段',区别就是我们使用的语句返回的到底是一个对象还是列表: obj=mo ...
- 了解各种不同意义上的new
问题1:请说明new operator 和 operator new的差异? 1.new operator : 一般我们写代码的时候,例如:String *p = new String(&quo ...
- 使用LESS对CSS进行预处理
LESS 做为 CSS 的一种形式的扩展,它并没有阉割 CSS 的功能,而是在现有的 CSS 语法上,添加了很多额外的功能,所以学习 LESS 是一件轻而易举的事情. 变量 请注意 LESS 中的变量 ...
- Django 学生信息 添加 功能 遇到的问题.
1 添加 班级信息时的问题 (grade为外键) 原因是 grade 必需接收 一个 实例, 而我交是一个 str字符串, if request.method == 'POST': data = { ...