文章目录
企业CDN缓存系统 -varnish(一)
1.什么是varnish
意思为;
HTTP协议相关知识
可以使用==cache(缓冲)==来解决无状态的问题,varnish才可以作为http的加速器。
2.varnish进程的工作模式
Varnish启动会产生master主(management)进程和child子(worker ,主要做cache的工作)进程
作用:
- master进程读入(更新)配置,vcl文件编译,varnish监控,初始化varnish及提供varnish管理接口。
- child进程分配若干线程进行工作,主要包括一些管理线程和很多woker线程。
注意:Manegement进程每隔几秒探测以下child进程以判断其是否正常运行,如果在指定的时长内未得到child进程的回应,management将会重启此child进程
ps -ef
3.如何搭建一个最基本的varnish代理缓存服务器
1.下载varnish的软件包
1.进入varnish官网:http://varnish-cache.org/,点击页面上的download
2.点击想要的varnish版本:
3.进入该版本下载界面后,点击最下方的链接
4.点击左边的packages
5.下载rpm的包
6.对于varnish的操作,可以在首页的documentation里查看学习
中文的documentation比较老旧,不建议看
7.也可以在varnish book学习
2.安装步骤
varnish代理服务器模块
实验背景:
server1 反向代理服务器 ip 为172.25.70.1
server2 后端服务器 ip为172.25.70.2
真机 客户端 ip为172.25.70.250
具体步骤:
安装varnish还需要一个解决依赖性的安装包jemalloc-3.6.0-1.el7.x86_64.rpm
解决这样的依赖性问题所需的安装包可以在一个网站上下载:pkgs.org
2.关闭selinux firewalld 并且配置好本地yum源
3.yum安装varnish
yum install varnish-6.3.1-1.el7.x86_64.rpm jemalloc-3.6.0-1.el7.x86_64.rpm -y
4.查看varnish的配置文件
rpm -qc varnish
5.varnish运行在最优状态下,需要对硬件系统有一些要求,/usr/lib/systemd/system/varnish.service是varnish服务启动脚本,可以查看这些要求
vim /usr/lib/systemd/system/varnish.service
6.ulimit -a 显示当前的资源设定
7.sysctl -a | grep file
8.增加内存来提升可打开的最大文件数
在虚拟机中增大内存,可以增加其最大文件打开数。
ulimit -l查看系统的内存大小
free -m查看系统的剩余内存
sysctl -a | grep file查看系统允许开启文件的最大个数
10.安装varnish之后就会出现varnish用户,id是1000以前的
vim /etc/security/limits.conf #系统参数限制文件,修改系统的参数.可以写独立的用户或者进程可以获得的一些限制,添加varnish用户的一些限制(按照 /usr/lib…文件的限制配置)。
11.vim /etc/varnish/default.vcl主配置文件的编辑。
编辑后端的(架构图中的web服务器)ip和访问端口。
注意,当配置好web服务端和反向代理服务器端时,在真机(客户端)进行嗅探时,会发现无法访问
原因是在此实验中,客户端访问代理服务器时默认访问的端口是80,所以应该将varnish的端口改为80。
这里的改指的是伪装,将用户访问varnish的6081端口伪装为80端口,使客户端认为自己得到了服务。
vim /usr/lib/systemd/system/varnish.service
后端服务器的配置
1.配置yum源,关闭火墙和selinux,设置主机名
2.安装httpd,开启服务
3.编辑测试文件,开启服务
cd /var/www/html/
vim index.html #在测试页中写入server2方便查看后面的实验效果
systemctl start httpd