一、Varnish实现反向代理
1、搭建环境:
server1(172.25.254.1):Varnish代理服务器
server2(172.25.254.2):web服务器1
server3(172.25.254.3):web服务器2
clients(172.25.254.55):测试机
2、搭搭建网络yum源,三台虚拟机都需要配置好yum源:可以参考本文https://blog.csdn.net/weixin_43314056/article/details/83375382
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.254.55/rhel6.5/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
3、下载Varnish软件包
yum install varnish-* -y
查看varnish配置文件
[root@server1 ~]# rpm -qc varnish
1)查看Varnish启动要求
vi /etc/sysconfig/varnish
NFILES 最大打开文件个数
MEMLOCK=82000 默认是运行varnish需要82M内存
VARNISH_LISTEN_PORT=80 端口改为80端口
2)查看自己系统最大打开文件数,和内存大小,修改相应的varnish中的系统参数
4、编辑文件:
vi /etc/security/limits.conf
在该文件中添加配置信息,告知系统运行varnish所需要的性能参数,达到使计算机可以运行varnish的要求
5、编辑varnish配置文件
vi /etc/varnish/defgault.vcl
- 配置后端web服务器
backend default {
.host = "172.25.254.2";
.port = "80";
}
开启varnish服务:/etc/init.d/varnish start
开启varnish服务后,系统中会打开两个进程,由root和varnish用户开启
6、server2开启apache服务:
yum install httpd -y
/etc/init.d/httpd start
[root@server2 ~]# cat /var/www/html/index.html
<h1>www.westos.org--->>server2</h1>
测试:client端curl 172.25.254.1
上面实验可以通过varnish实现反向代理,但是是否实现缓存,必须重新验证
二、测试客户端是否实现缓存
1、编辑配置文件:
vi /etc/varnish/defgault.vcl
2、重载varnish服务
/etc/init.d/varnish reload
不能重启服务,不然会清除掉varnish服务器所有缓存信息。
client端重新测试:
当第一次访问时,由于varnish服务器内存空间中没有缓存的网页内容,会显示MISS,varnish服务器会去访问server2的apache服务器,将网页内容缓存下来,回复给client
第二次访问时:varnish中已经存在从server2中缓存的网页,直接可以将内容回复给client
vi /etc/varnish/defgault.vcl
Varnish服务器清除缓存内容
1、手动清理缓存
varnishadm ban.url .*$ ###清除所有缓存
varnishadm ban.url /index.html ###清除网页缓存
2、自动清理缓存
vi /etc/sysconfig/varnish
三、Varnish实现对多个web服务器的访问加速
1、编辑配置文件:
vi /etc/varnish/default.vcl
2、server2,server3都开启apache,重载varnish服务
client配置本地解析
vim /etc/hosts
172.25.254.1 www.westos.org bbs.westos.org
四、Varnish配置后端web服务器负载均衡
1、编辑配置文件:
vi /etc/varnish/default.vcl
2、重载varnish服务
3、server3创建两台虚拟主机:www.westos.org bbs.westos.org;打开80端口
vi /etc/httpd/conf/httpd.conf
<VirtualHost *:80>
DocumentRoot /www
ServerName www.westos.org
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /bbs
ServerName bbs.westos.org
</VirtualHost>
3、client端测试
当用户对某个网页访问量非常大时候,可以保证用户的正常访问,同时防止服务器因为负载过大宕机。
五、CDN推送平台搭建
1、Varnish服务器安装apache和php
yum install php httpd -y
2、下载CDN推送平台软件包,解压到/var/www/html/下
unzip bansys.zip -d /var/www/html/
cd /var/www/html/bansys/
vi config.php
server1:vi /etc/httpd/conf/httpd.conf
3、打开浏览器去访问:172.25.254.1:8080
4、编辑配置文件:
vi /etc/varnish/default.vcl
5、client端测试能否正常去推送内容
推送清除缓存内容
此时client访问的是web2