Varnish服务器

本文介绍了Varnish的高性能特点以及其作为HTTP加速器的优势,详细讲解了Varnish的基础概念、VCL配置语言及其处理流程,并通过虚拟机的封装、配置base虚拟机的步骤,以及在物理机中创建子虚拟机和安装varnish的过程,提供了一套完整的Varnish服务器搭建教程。
摘要由CSDN通过智能技术生成

一、Varnish简介

Varnish 是一款高性能且开源的反向代理服务器和 HTTP 加速器,其采用全新的软件体系机构,和现在的硬件体系紧密配合,与传统的 squid 相比,varnish 具有性能更高、速度更快、管理更加方便等诸多优点。

Varnish是一款高性能的开源HTTP加速器,他的作者Poul-Henning Kamp是FreeBSD的内核开发者之一。挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。 Varnish与一般服务器软件类似,就是一个web缓存代理服务器,分为master(management)进程和child(worker,主要做cache的工作)进程。master进程读入命令,进行一些初始化,然后fork并监控child进程。child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。

Management进程主要实现应用新的配置、编译VCL、监控varnish、初始化varnish以及提供一个命令行接口等。 Management进程会每隔几秒钟探测一下Child进程以判断其是否正常运行,如果在指定的时长内未得到Child进程的回 应,Management将会重启此Child进程。 Child进程包含多种类型的线程,常见的如: Acceptor线程:接收新的连接请求并响应; Worker线程:child进程会为每个会话启动一个worker线程,因此,在高并发的场景中可能会出现数百个worker线程甚至更多; Expiry线程:从缓存中清理过期内容; Varnish依赖“工作区(workspace)”以降低线程在申请或修改内存时出现竞争的可能性。在varnish内部有多种不同的工作区,其中最关键的当属用于管理会话数据的session工作区。

 

二、VCL简介

Varnish Configuration Language (VCL)是varnish配置缓存策略的工具,它是一种基于“域”(domain specific)的简单编程语言,它支持有限的算术运算和逻辑运算操作、允许使用正则表达式进行字符串匹配、允许用户使用set自定义变量、支持if判 断语句,也有内置的函数和变量等。使用VCL编写的缓存策略通常保存至.vcl文件中,其需要编译成二进制的格式后才能由varnish调用。

 

VCL处理过程大致分为如下几个步骤:

(1)Receive 状态,也就是请求处理的入口状态,根据 VCL 规则判断该请求应该是 Pass 或 Pipe,或者进入 Lookup(本地查询)。

(2)Lookup 状态,进入此状态后,会在 hash 表中查找数据,若找到,则进入 Hit 状态,否则进 入 miss 状态。

(3)Pass 状态,在此状态下,会进入后端请求,即进入 fetch 状态。

(4)Fetch 状态,在 Fetch 状态下,对请求进行后端的获取,发送请求,获得数据,并进行本地 的存储。

(5)Deliver 状态, 将获取到的数据发送给客户端,然后完成本次请求。

 

三、虚拟机的封装

本次安装通过http安装,需要提前配置好本地dhcp服务,地址池设置如下:

 

1、virt-manager打开虚拟机管理器安装base虚拟机:

 

 

 

  

 

 

2、进入安装界面

TCP/IP中ipv4中选择dhcp,关闭ipv6

重新初始化所有磁盘设备

 

Partition Type(分区类型)有三种: Use entire drive #使用全部的磁盘; Replace existing Linux system #替换现有的Linux系统; Use free space #使用剩余空间 由于是全新安装,三种任意均可

将存储设置写入磁盘

四、配置base虚拟机

1、在虚拟机中:

删除rule

cd /etc/udev/rules.d

rm -fr 70*

注:若不删除,当网卡启动时,这个udev规则文件会分配一个网卡名称

2.关闭火墙

iptables -L                            #查看火墙状态

/etc/init.d/iptables stop       #关闭火墙

chkconfig iptables off         #设置火墙开机不启动

3.关闭selinux

vi /etc/sysconfig/selinux

SELINUX=disable

4.配置网络

cd /etc/sysconfig/network-scripts/

vi ifcfg-eth0

重启网络

/etc/init.d/network restart

5.配置yum仓库

使用物理机通过httpd共享的网络yum源

yum clean all   #清缓存

yum repolist    #列出仓库软件总数

6.安装常用工具

yum install vim lftp -y

yum install openssh-clients -y

7.更改主机名

vim /etc/sysconfig/network

HOSTNAME=server1    #永久更改主机名为server1

8.配置本地解析

vim /etc/hosts

9.关闭虚拟机

poweroff

 

物理机中操作:

1.清除base缓存

virt-sysprep -d base

安装工具包:

 

2.删除虚拟机管理器中的base

不删除镜像文件

 

五、创建子虚拟机

1、创建子虚拟机镜像

qemu-img create -f qcow2 -b base.qcow2 vm1

qemu-img create -f qcow2 -b base.qcow2 vm2

qemu-img create -f qcow2 -b base.qcow2 vm3

qemu-img create -f qcow2 -b base.qcow2 vm4

 

 

2、导入新建的子虚拟机镜像到虚拟机管理器

选择通过镜像导入,选择镜像,os type选择linux,version选择redhat6.5

 

  

 

  

 

3、配置子虚拟机

打开子虚拟机,更改IP和主机名,并重启网络,关闭虚拟机

 

依次配置完三台子虚拟机

 

六、varnish的安装

1、安装varnish

yum install varnish-3.0.5-1.el6.x86_64.rpm varnish-libs-3.0.5-1.el6.x86_64.rpm -y

 

2.更改varnish全局配置

vim /etc/sysconfig/varnish

VARNISH_LISTEN_PORT=80   #更改varnish服务端口为80

 

3.更改varnish配置文件

vim /etc/varnish/default.vcl

backend default {            #配置一个后端服务器
  .host = "172.25.56.2";     #更改访问IP为172.25.56.2
  .port = "80";
}

 

4.重新加载服务

/etc/init.d/varnish reload

2、server2中:

1.安装apache

yum install httpd -y

/etc/init.d/httpd start

2.编写index.html

cd /var/www/html

vim index.html

<h1>server2</h1>

 

3.重新加载服务

/etc/init.d/httpd reload

3、测试:

物理机中打开firefox,访问172.25.56.1,看到server2即配置成功

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值