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
 

先就说这么多吧

更多精华请参考

原文地址:https://www.cnblogs.com/zhangan/p/5101891.html