设为首页 收藏本站
查看: 439|回复: 0

[经验分享] 使用Varnish加速Web

[复制链接]

尚未签到

发表于 2017-11-8 10:23:28 | 显示全部楼层 |阅读模式
使用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软件包

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

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

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

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

    [iyunv@web ~]# netstat  -anptu  |  grep httpd
    tcp        0        0        :::80        :::*        LISTEN        2813/httpd
3)为Web访问建立测试文件

在网站根目录/var/www/html下创建一个名为index.html的首页文件
         [iyunv@web ~]# echo "这是Varnish的测试页面..A.." > /var/www/html/index.html
步骤二:部署Varnish缓存服务器

1)编译安装软件

    [iyunv@Proxy ~]# yum -y install gcc readline-devel pcre-devel    //安装软件依赖包
    [iyunv@Proxy ~]# useradd -s /sbin/nologin varnish                //创建账户
    [iyunv@Proxy ~]# tar -xzf varnish-3.0.6.tar.gz
    [iyunv@Proxy ~]# cd varnish-3.0.6
    [iyunv@Proxy varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
    [iyunv@Proxy varnish-3.0.6]# make && make install

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

    [iyunv@Proxy varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish
    [iyunv@Proxy varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
    [iyunv@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
    [iyunv@Proxy varnish-3.0.6]# ln -s /usr/local/varnish/bin/* /usr/bin/

3)修改Varnish文件

    [iyunv@Proxy ~]# vim /etc/sysconfig/varnish
    66行:VARNISH_LISTEN_PORT=80                                #默认端口
    89行:VARNISH_STORAGE_SIZE=60M                                #定义缓存大小
    92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}"        #基于内存方式缓存
4)修改代理配置文件

    [iyunv@Proxy ~]# mkdir /etc/varnish
    [iyunv@Proxy ~]# cp /usr/local/varnish/etc/default.vcl /etc/varnish/
    [iyunv@Proxy~]# uuidgen > /etc/varnish/secret
    [iyunv@Proxy ~]# vim  /etc/varnish/default.vcl
    backend default {
         .host = "192.168.2.100"; //改成口端服务器的IP
         .port = "80";    //改称80端口
     }
    [iyunv@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)客户端开启浏览器访问

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

步骤四:相关技术点

1)查看varnish日志

    [iyunv@Proxy ~]# varnishlog                    //varnish日志
    [iyunv@Proxy ~]# varnishncsa                    //访问日志

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

    [iyunv@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 页面文件名
    //清空缓存数据,支持正则表达式


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-406712-1-1.html 上篇帖子: rsync通过服务同步、linux系统日志、screen工具 下篇帖子: Centos7下,LVM根分区扩容
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表