1,Varish的使用有两种模式:
第1种  Nginx(负载)+varish(缓存)+WEB
第2种  Varish(缓存和负载)+web
 
2,varish是以内存作为共享容器的:
内存的大小决定了它的缓存容量。相对于主要以硬盘为存储的squid来说要高效的多。它适合一些经常查询且变化不大的静态内容缓存。
    
     Nginx  图片和静态文本给 varish 后端是WEB的8080端口
            动态内容给后端WEB  后端是WEB的8080端口
     这个架构要看服务器和存储内容,如果nginx不用做反向代理以支持后台诸多应用的话,那么单就nginx来说,利用proxy_cache模块也可以支持本地缓存。它缓存在硬盘上,性能和squid相差不大,但是稳定性和易用性要好的多。
 
3,安装varish:
    1)创建用户和组,赋予权限
# groupadd www
# useradd -g www www
# mkdir -p /var/vcache
# chown -R www:www /var/vcache
   
 2)创建varnish日志目录并授权
# mkdir -p /var/log/varnish
# chmod +w /var/log/varnish
# chown -R www:www /var/log/varnish
   
 3)编译安装varnish
# tar zxvf varnish-1.1.2.tar.gz
# cd varnish-1.1.2
# ./configure --prefix=/usr/local/varnish
# make && make install
   
 4)创建并修改配置文件vi /usr/local/varnish/vcl/conf
 
backend default {                           #通过反向代理请求后端IP为192.168.0.5,80端口的WEB服务器,可以是本机,也可以是后台                  .host = "192.168.0.151";
                  .port = "81";
}
 
acl purge {                                      #允许这三个来源的IP通过PURGE方法清除缓存       "localhost";
       "127.0.0.1";
       "192.168.1.0"/24;
}
 
sub vcl_recv {
       if (req.request == "PURGE") {
               if (!client.ip ~ purge) {
                       error 405 "Not allowed.";    #405错误显示               }
              return(lookup);
       }
 
       if (req.http.host ~ "^blog.s135.com") {
               set req.backend = default;
               if (req.request != "GET" && req.request != "HEAD") {
                return(pipe);
               }
               else {
                return (lookup);
               }
       }
       else {
               error 404 "Not in cache"; #404错误显示               return(lookup);
       }
}
 
sub vcl_hit {
       if (req.request == "PURGE") {
               set obj.ttl = 0s;
               error 200 "Purged.";
       }
}
 
sub vcl_miss {
       if (req.request == "PURGE") {
               error 404 "Not in cache.";
       }
}
 
sub vcl_fetch {                                            
       if (req.request == "GET" && req.url ~ "/.(txt|js)$") {
              set obj.ttl = 3600s;                         #对于txt和js缓存一个小时       }
       else {
               set obj.ttl = 30d;                     #其余的缓存一天       }
}
Varnish对HTTP协议中的GET、HEAD请求进行缓存,对POST请求透过,让其直接访问后端Web服务器。之所以这样配置,是因为POST请求一般是发送数据给服务器的,需要服务器接收、处理,所以不缓存;
   5)启动ulimit -SHn 51200 
/usr/local/varnish/sbin/varnishd -a :80 -b 192.168.0.151:81 -p thread_pool_max=1500 -p thread_pools=5 -p listen_depth=512  -w 1,10000,120
6)将访问日志写入访问文件/usr/local/varnish/bin/varnishncsa -n /var/vcache -w /var/log/varnish/varnish.log &
 
7)查看状态
8)测试
我们用varish监听80端口,同时将数据来源转向到监听81端口的Apache
访问主页

安装varish作为缓存和代理相关推荐

  1. openresty开发系列2--nginx的简单安装,正向、反向代理及常用命令和信号控制介绍...

    openresty开发系列2--nginx的简单安装,正向.反向代理及常用命令和信号控制介绍 一.nginx的安装下载及编译安装 1.Nginx下载:nginx-1.13.0.tar.gz,下载到:/ ...

  2. npm/yarn修改全局安装路径和缓存路径。。。

    前言 命令行界面打开方式 window + r -> cmd 建议 yarn 和 npm 的 全局安装位置 和 全局bin位置,最好设置在同一个盘符呢,这样 bin 目录中的 .cmd脚本文件中 ...

  3. Gerrit安装及使用Nginx反向代理

    Gerrit安装及使用Nginx反向代理 简介 Gerrit做为Google用来管理Android代码版本的工具,是一种免费.开放源代码的代码审查软件,使用网页界面.本文主要介绍它的安装步骤. 一.准 ...

  4. linux上安装nginx及实现反向代理

    nginx是高性能的http和反向代理的服务器.占用内存少,并发能力强. 主要作用有:反向代理.负载均衡.动静结合. 接下来我将描述一下如何安装nginx,同时实现反向代理功能. 1.安装nginx ...

  5. nginx 安装配置+清缓存模块安装

    nginx 安装配置+清缓存模块安装 下载软件包 编译安装 内核参数优化 配置范例站点站点 修改nginx配置文件 Nginx 启动关闭 测试 经过一段时间的使用,发现 nginx 在并发与负载能力方 ...

  6. 编译安装nginx并实现反向代理负载均衡和缓存功能

    一.编译安装nginx 1.下载 [root@ns1 ~]# wget http://nginx.org/download/nginx-1.10.0.tar.gz 2.解压 [root@ns1 ~]# ...

  7. [转]nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件

    文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...

  8. nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全

    文章目录 前言 一.nginx简介 1. 什么是 nginx 和可以做什么事情 2.Nginx 作为 web 服务器 3. 正向代理 4. 反向代理 5. 负载均衡 6.动静分离 二.Nginx 的安 ...

  9. 【爬虫】 Squid 3.5.20 安装与配置 高匿代理

    Squid 介绍 Squid是一个缓存internet数据的一个软件,它接收用户的下载申请,并自动处理所下载的数据.也就是说,当一个用户象要下载一个主页时,它向Squid发出一个申请,要Squid替它 ...

最新文章

  1. pyspark使用ipython
  2. java线程 教程_Java多线程系列教程
  3. 营业额破千亿美元的亚马逊仍难令华尔街满意
  4. python停止线程池_详解python中Threadpool线程池任务终止示例代码
  5. python 安装 HTMLtestRunner(转)
  6. python 数据结构包括三方面_python数据结构
  7. 兆芯笔试题(2015)找反复数最多的字母的数量以及位置
  8. 计算机与科学 研究生考试内容,计算机科学与技术考研考哪些科目 备考技巧有哪些...
  9. error LNK2005: _sprintf 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义
  10. 微信小程序授权登录详细解析
  11. 资源篇(一)-在线抠图神器
  12. java 定时任务 执行次数_java起一个定时任务,在规定的时间内自动执行
  13. 程序员自我修改之读书学习
  14. 微信没有回车键怎么换行_微信打字怎么换行
  15. 【阿里云云计算工程师ACP认证】什么是ACP
  16. 流程设计建模方法:流程的需求梳理之流程级别梳理
  17. 达梦数据库的备份与恢复
  18. C语言:浙大版《C语言程序设计(第3版)》题目集 练习5-1 求m到n之和 (10 分)
  19. 2023年中央财经大学数量经济学考博必看上岸前辈复习经验分享
  20. Charles 抓包工具 报You may need to configure your browser or application to trust the Ch......错误

热门文章

  1. php和架构,结构和架构的区别是什么?
  2. 烟台大学计算机专业录取分数线,2017烟台大学录取分数线排行榜
  3. android如何看百分比版本,【JAVA】Android百分比布局
  4. 图像金字塔与resize函数
  5. 奇葩错误:“假缩进”(python专属)
  6. C++中的双冒号(::)
  7. cookie关键字_我遇过的最难的Cookie问题
  8. Go 分布式学习利器(7)-- 字符串
  9. C++ 函数参数 值传递与引用传递
  10. casperjs 安装试用