• Varnish安装使用(初学)


    Varnish安装使用(初学)
    本人对varnish也是新手,这里记录一下安装步骤!

    环境:centos6.6

    varnish安装包下载:wget https://repo.varnish-cache.org/source/varnish-3.0.7.tar.gz

    先上我的拓扑图 (基础拓扑为LVSDR环境)  LVS不在这里讲解

     

    安装


    yum -y install gcc gcc-c++ make autoconf automake
    yum -y install automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig readline-devel<br>tar -zxf varnish-3.0.7.tar.gz<br>cd varnish-3.0.7<br>./configure --prefix=/usr/local/varnish<br>make;make install
     拷贝文件到系统


    cp redhat/varnish.initrc /etc/init.d/varnish
    cp redhat/varnish.sysconfig /etc/sysconfig/varnish
    cp redhat/varnish_reload_vcl /usr/local/varnish/bin
     

    修改varnish配置文件

    vim /etc/sysconfig/varnish

    修改为如下内容 (里面有许多varnish的性能配置)

    VARNISH_VCL_CONF=/usr/local/varnish/etc/varnish/default.vcl

    VARNISH_LISTEN_PORT=80

    VARNISH_SECRET_FILE=/usr/local/varnish/etc/varnish/secret

    vim /etc/init.d/varnish


    pidfile=/var/run/varnish.pid
    exec="/usr/local/varnish/sbin/varnishd"
    reload_exec="/usr/local/varnish/bin/varnish_reload_vcl"
     


    # Done parsing, set up command
    VARNISHADM="/usr/local/varnish/bin/varnishadm $secret -T $VARNISH_ADMIN_LISTEN_ADDRESS:$VARNISH_ADMIN_LISTEN_PORT"
     注:也可以将/usr/local/varnish/bin添加到系统的PATH中,这样就不需要编辑varnish_reload_vcl

    生成varnish管理秘钥:


    /usr/bin/uuidgen > /usr/local/varnish/etc/varnish/secret
    chmod 644 /usr/local/varnish/etc/varnish/secret
     

    VCL配置(对应拓扑图)

    vim /usr/local/varnish/etc/varnish/default.vcl


    backend web1 {
    .host = "192.168.0.38";
    .port = "80";
    .connect_timeout = 1s;
    .first_byte_timeout = 5s;
    .between_bytes_timeout = 2s;
    }
     
    backend web2 {
    .host = "192.168.0.162";
    .port = "80";
    .connect_timeout = 1s;
    .first_byte_timeout = 5s;
    .between_bytes_timeout = 2s;
    }
     
    director syw_web random {
            { .backend = web1; .weight =2; }
            { .backend = web2; .weight =2; }
     
    }
     
    #clean cache
    acl purge {
            "localhost";
            "127.0.0.1";
            "192.168.0.162";
            "192.168.0.167";
    }
     
    sub vcl_recv {
            if (req.http.host ~ "^192.168.0.193"){
                    set req.backend = syw_web;}
     
     
    if (req.request == "PURGE") {
          if (!client.ip ~purge) {
            error 405 "Not Allowed";
        }
            return(lookup); #find localhost cache
    }
     
    if (req.request == "GET" && req.url ~ ".(png|swf|txt|png|gif|jpg|css|js|htm|html)$") {
        unset req.http.cookie;
     }
     
    if (req.url ~ "^/images") {
      unset req.http.cookie;
     }
     
    #if (req.http.Cache-Control ~ "(no-cache|max-age=0)"){
    #       purge_url(req.url);
    #}
    #       return (lookup);
     
     
    #获取客户端ip
    #     if (req.restarts == 0) {
      if (req.http.x-forwarded-for) {
             set req.http.X-Forwarded-For =
             req.http.X-Forwarded-For + ", " + client.ip;
         } else {
                set req.http.X-Forwarded-For = client.ip;
                }
      #   }
    }
     

    检查VCL配置是否正确:
    /etc/init.d/varnish configtest

    /usr/local/varnish/sbin/varnishd -C -f /usr/local/varnish/etc/varnish/fdfs.vcl    #启动varnish:
     
    service varnish start    #查看varnish状态:
     
    /etc/init.d/varnish status   # 动态加载VCL配置:
     
    /etc/init.d/varnish reload   # 停止varnish:
     
    /etc/init.d/varnish stop
     

    先就说这么多吧

    更多精华请参考

  • 相关阅读:
    如何去掉NavigationBar的backButton
    iDoubs的编译问题以及解决方案
    【五一呈献】通用高性能 Windows Socket 组件 HPSocket v2.1.1 正式发布
    PortalBasic Java Web 应用开发框架:应用篇(十三) —— REST Convention
    如何养成良好的 C++ 编程习惯(一)—— 内存管理
    PortalBasic Java Web 应用开发框架:应用篇(十一) —— 整合 Spring
    整理发布本人所有博客文章中涉及的代码与工具(大部分是C++和Java)
    PortalBasic Java Web 应用开发框架:应用篇(十四) —— 异步 Action
    【双旦献礼】PortalBasic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
    PortalBasic Java Web 应用开发框架:应用篇(十二) —— Action Convention
  • 原文地址:https://www.cnblogs.com/zhangan/p/5101891.html
Copyright © 2020-2023  润新知