zoukankan      html  css  js  c++  java
  • Varnish安装与配置

    安装

    文件总数为5个,包含2个安装文件1个安装脚本,2个配置文件。

    上传至静态缓存服务器 /home/{user}/ Varnish目录下(使用root用户,否则安装过程中权限不够)

    1. pcre-8.35.tar.gz #Varnish依赖库
    2. varnish-3.0.5.tar.gz #Varnish安装文件
    3. varnish_init.sh #Varnish安装脚本
    4. varnish #Varnish启动配置文件
    5. default.vcl #Varnish主配置文件

    依赖库安装

    Varnish用到了pcre这个库。在操作系统安装过程中可以找到pcre的安装可以在安装操作系统时候默认安装这个库。如果没有安装pcre,在编译varnish2.0以上版本时,会提示找不到pcre库,而pcre库是为了兼容正则表达式,所以必须要安装pcre库。

    1. # tar --zxvf pcre-8.35.tar.gz
    2. # cd pcre-8.35
    3. # ./configure
    4. # make && make install
    5. # mkdir /usr/local/lib/.libs
    6. # cp /usr/local/lib/libpcre.a /usr/local/lib/.libs/libpcre.a
    7. # cp /usr/local/lib/libpcre.la /usr/local/lib/.libs/libpcre.la

    Varnish安装

    使用自定义的一键安装脚本(redhat版):varnish_init.sh。其中包含了安装软件,设置service及自启动。使用命令为:

    1. #sh varnish_init.sh 安装包绝对路径

    如下:

    1. #cd /home/huangteng/Varnish #先切换到varnish_init.sh所在的目录
    2. #sh varnish_init.sh /home/huangteng/Varnish/varnish-3.0.5.tar.gz

    出现以下提示即为安装成功:

    1. varnish install success. #安装成功
    2. varnish copy file success. #service及自启动设置成功

    配置文件

    拷贝配置文件至以下目录

    1. #cp varnish /etc/sysconfig/varnish #复制启动文件(选yes覆盖)
    2. #cp default.vcl /etc/varnish/default.vcl #复制主复制文件(选yes覆盖)

    将默认的两个文件分别覆盖掉

    在安装过程中已经将vainish加入系统服务中,通过chkconfig命令可以设置开机自动启动

    1. #chkconfig varnish on

    通过:

    1. #service varnish start|stop|restart

    命令管理varnish服务。

    varnishVarnish的启动配置文件。全路径为:“/etc/sysconfig/varnish”,下面列出了varnishd常用参数的使用方法和含义。

    l  -a  address:port            :表示varnishhttpd的监听地址及其端口

    l  -baddress:port            :表示后端服务器地址及其端口  

    l  -d debuf                         :表示使用debug调试模式  

    l  -f  file                                       :指定varnish服务器的配置文件

    l  -p param=value          :指定服务器参数,用来优化varnish性能  

    l  -P,     file                                       Varnish进程PID文件存放路径  

    l  -ndir                               :指定varnish的工作目录  

    l  -skind[,options]           :指定varnish缓存内容的存放方式,常用的方式有:                                                         -s file,<dir_or_file>,<size>”。

                                                  其中“<dir_or_file>”指定缓存文件的存放路径,“<size>”指定缓存                                      文件的大小  

    l  -t  time to live                :指定缺省的TTL  

    l  -T address:port              设定varnishtelnet管理地址及其端口

    l  -wint[,int[,int]]              :设定varnish的工作线程数,常用的方式有:  

    -w min,max  

    -w min,max,timeout  

                         例如:-w 5,51200,30,这里需要说明下,在varnish2.0版本以后,最小启动的线程数不能设定过大,设置过大,会导致varnish运行异常缓慢。

    l    -V 显示varnish版本号和版权信息

     

    default.vclvarnish的缓冲配置:

        配置后端服务器:

    1. backend img {
    2. .host = "192.168.136.131";
    3. .port = "8080";
    4. }
    配置其他选项:
    1. sub vcl_fetch
    2. {
    3. # 设定默认缓存时长
    4. set beresp.ttl = 300s; #超时时长为300秒
    5. # 定义缓存时长
    6. if (req.url ~ ".(css|js|html|htm|xsl|xml)$") {
    7. set beresp.ttl = 300s; #超时时长为300秒
    8. }

    9. # 图片/视频/音频/文档/压缩文件 缓存时常 三天 3x24x60x60m
    10. if(req.url ~ ".(png|pdf|ppt|doc|docx|chm|rar|zip|bmp|jpeg|swf|ico|mp3|mp4|rmvb|ogg|mov|avi|wmv|swf|txt|png|gif|jpg)$") {
    11. set beresp.http.Pragma = "cache";
    12. set beresp.http.Cache-Control = "max-age=259200, public";
    13. set beresp.ttl = 3d;
    14. }
    15. # 如果后端状态为 404 则缓存 600s
    16. if(beresp.status == 400 && beresp.status == 403 && beresp.status == 404) {
    17. set beresp.ttl = 600s;
    18. }

    19. # 如果后端服务器出现 500/501/502/503/504 错误时进入神圣模式 saintmode
    20. if (beresp.status == 500 || beresp.status == 501 || beresp.status == 502 || beresp.status == 503 || beresp.status == 504) {
    21. set beresp.saintmode = 20s;
    22. return (restart);
    23. }

    24. # grace时长,减少高并发下的穿透和争抢,设置缓存对象过期后还可以保留的时间
    25. set beresp.grace = 5m;

    26. return (deliver);
    27. }

    测试

    配置tomcat服务器放置图片然后通过访问varnish->tomcat访问图片

    curl –I http://192.168.136.131:8081/hhh/img/b999.jpg

    命令可以查看到

    X-cache:HIT缓冲命中

     





    附件列表

    • 相关阅读:
      使用命令行工具创建.Net Core应用程序
      WinForm--DataGridView复制单元格数据
      WinForm--DataGridView导出数据到CSV文件
      进程和线程(线程是轻量级进程)(下)
      进程和线程(线程是轻量级进程)(中)
      C# 泛型(Generic)
      C# 事件(Event)
      C# 委托(Delegate)
      C# 反射
      C# 程序集(Assembly)
    • 原文地址:https://www.cnblogs.com/huangt/p/4607203.html
    Copyright © 2011-2022 走看看