热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux平台部署varnish高性能缓存服务器(1)

【本文档所介绍的内容适用于公司测试生产常见的varnish环境部署】一:varnish部署前准备:1.1相关软件以及系统,web服务系统要求:Centos6(以上)(64位)相关中间


【本文档所介绍的内容适用于公司测试/生产常见的varnish环境部署】

一:varnish部署前准备:

1.1相关软件以及系统,web服务

系统要求:Centos 6(以上) (64位)

相关中间件:varnish-4.0.2

1.2相关系统依赖包安装检查准备

1.2.1 检查系统自带nginx是否安装

rpm -qa | grep varnish

如有安装,请使用以下命令卸载相关程序 

yum remove varnish -y

1.2.2 安装编译nginx需要的依赖包

 yum install libtool ncurses-devel pcre-devel ibedit-devel pkgconfig python-docutils python-sphinx automake autoconf  -y

1.2.3 安装好相关web服务

 安装Apache,nginx,tomcat等都行,本文档的web安装在本地,使用的nginx web 端口为:8080

二:varnish 部署安装

2.1 下载varnish安装包

如有所示为varnish的官网:https://www.varnish-cache.org/releases,选择对应的varnish版本,本文档用的版本是varnish4.0.2 

cd /usr/local/srcwget https://repo.varnish-cache.org/source/varnish-4.0.2.tar.gz

2.2 编译安装varnish

cd /usr/local/srctar zxvf varnish-4.0.2.tar.gz./configure CPPFLAGS="-I$PATH_TO_LIBEDIT/include" LDFLAGS="-L$PATH_TO_LIBEDIT/lib" \--prefix=/usr/local/varnish4.0.2 make && make install

2.3 配置varnish的启动脚本

echo "/usr/local/varnish4.0.2/sbin/varnishd -P /var/run/varnish.pid -f /usr/local/varnish4.0.2/etc/default.vcl -s malloc,1G -T 127.0.0.1:2000 -a 0.0.0.0:80" > /usr/local/varnish4.0.2/sbin/varnishd.sh 

2.4 将varnish以开机服务的形式启动,并加入系统服务

2.4.1 编辑/etc/init.d/varnishd

vim /etc/init.d/varnishd

2.4.2 在/etc/init.d/varnishd添加以下内容

#!/bin/sh#chkconfig:345 85 15 #description: varnish cache server# varnish# Copyright (C) 2001-2014 varnish cache#SERVICE="varnish server"DAEMON=/usr/local/varnish4.0.2/sbin/varnishd.shPIDFILE=/var/run/varnish.pidcase $1 in  'start')    if [ -x ${DAEMON} ]    then      $DAEMON      # Error checking here would be good...      echo "${SERVICE} started success ! "    else      echo "Can't find file ${DAEMON}."      echo "${SERVICE} NOT started."    fi  ;;  'stop')    if [ -s ${PIDFILE} ]    then      if kill `cat ${PIDFILE}` >/dev/null 2>&1      then        echo "${SERVICE} shutdown success !"        rm -f ${PIDFILE}      fi    fi  ;;  'restart')    $0 stop    sleep 10    $0 start  ;;  *)    echo "Usage: $0 start|stop|restart"    ;;esac

2.4.3 编辑/usr/local/varnish4.0.2/etc/default.vcl添加以下内容

vcl 4.0;backend webserver {    .host = "127.0.0.1";    .port = "8080";         //等同于后端web server    .connect_timeout = 4s;      .first_byte_timeout = 5s;      .between_bytes_timeout = 20s;  }

2.4.4启动varnishd 服务

service varnishd start

三:varnish验证测试

启动web服务

service nginx start

使用系统自带的命令curl -I localhost 如下所示:

HTTP/1.1 200 OKServer: nginx/1.8.0Date: Mon, 04 Jan 2016 07:50:09 GMTContent-Type: text/htmlLast-Modified: Mon, 31 Aug 2015 03:55:55 GMTETag: "55e3d04b-264"X-Varnish: 112 131182Age: 80Via: 1.1 varnish-v4Content-Length: 612Connection: keep-alive

本文如上红色部分,当X-varnish 后面出现两组数据的时候,说明缓存成功,这时我们在关掉web服务,数据会从varnish缓存里读取,如下

关闭web服务

service nginx stop

重新curl -I localhost 如果命中缓存,则如下所示:

HTTP/1.1 200 OKServer: nginx/1.8.0Date: Mon, 04 Jan 2016 07:53:47 GMTContent-Type: text/htmlLast-Modified: Mon, 31 Aug 2015 03:55:55 GMTETag: "55e3d04b-264"X-Varnish: 110 131182Age: 8Via: 1.1 varnish-v4Content-Length: 612Connection: keep-alive

当没有从缓存里命中时,会出现以下提示(没有命中缓存,则X-varnish后面数字为单组数字):

HTTP/1.1 503 Backend fetch failedDate: Mon, 04 Jan 2016 07:55:59 GMTServer: VarnishContent-Type: text/html; charset=utf-8Retry-After: 5X-Varnish: 98457Age: 0Via: 1.1 varnish-v4Content-Length: 282Connection: keep-alive

至此整个varnish的部署安装基本就OK了

本文出自 “菜鸟的成长记” 博客,请务必保留此出处http://blief.blog.51cto.com/6170059/1731390


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 怎么查看linux日志里请求量最高的url访问最多的_40道Linux运维面试精华题,请收下这份跳槽秘籍!...
    过一次年,结婚、存款、父母养老,一系列向钱看的事都在碾压我们本来还挺简单的神经,但难过没有出路,唯有找到好的方法和事业方向& ... [详细]
  • 一、原理用server1当作缓存的,主机请求server1,server1通过varnish设置,访问server2,将se ... [详细]
  • 高性能反向代理服务器Varnish安装与使用
    别问了,代 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • 分布式系统关注点——360°全方位解读「缓存」
    如果这是第二次看到我的文章,欢迎文末扫码订阅我个人的公众号(跨界架构师)哟~  本文长度为3578字,建议阅读10分钟。坚持原创,每 ... [详细]
  • Varnish搭建CDN内容分发网络
    概述:1.CDN内容分发网络CDN的全称是ContentDeliveryNetwork,即内容分发网络。其基本思路是尽可能避开互联网上有可能影响数据 ... [详细]
  • 有关phpfile_exists()函数的文章推荐10篇
    有关phpfile_exists()函数的文章推荐10篇:定义和用法clearstatcache()函数的作用是:清除文件状态缓存。PHP的缓存数据对更快更好的运行函数是非常有利的 ... [详细]
  • php实现监控varnish缓存服务器的状态
    php实现监控varnish缓存服务器的状态-当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写了出来,今 ... [详细]
  • linux运维人员必会开源运维工具体系说明:不同的技术人员,不同的阶段确定知识边界非常重要,否则,就像马拉车,不知道终点在哪,累死也达不到目标。例如拿8K要学多少,拿15K要学多少。一个新 ... [详细]
  • varnish 缓存服务器
    varnish缓存服务器局部性:空间局部时间局部http1.1时代过期时间条件式条件式请求:客户端发请求时给缓存服务器,先查本地缓存是否命 ... [详细]
  • [1].主机与主机之间通讯的三要素有什么?IP地址、子网掩码、IP路由[2].网络排错常用思路及每一步的作用或目的。先ping回环地址,检查TCPIP ... [详细]
author-avatar
有一颗爱心和寂寞的心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有