国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 基礎(chǔ)常識(shí) > 正文

Varnish配置筆記記錄

2020-05-13 13:45:53
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

   Varnish是一個(gè)開源的反向代理軟件和HTTP加速器,與傳統(tǒng)的Squid相比,Varnish具有性能更高、速度更快、管理更方便等諸多優(yōu)點(diǎn),很多大型的運(yùn)營(yíng)網(wǎng)站都開始嘗試用Varnish來(lái)替換Squid,這些都促使Varnish迅速發(fā)展起來(lái)。

  1、準(zhǔn)備工作及下載源碼包

  yum install -y automake autoconf libtool ncurses-devel libxslt groff pcre-devel pkgconfig

  wget http://repo.varnish-cache.org/source/varnish-3.0.3.tar.gz

  2、安裝

  tar zxf varnish-3.0.3.tar.gz

  cd varnish-3.0.3

  ./autogen.sh

  ./configure --prefix=/usr/local/varnish

  make && make install

  3、添加Varnishd進(jìn)程用戶www,用戶組www,創(chuàng)建/var/vcache目錄,使www用戶有權(quán)限可讀寫

  groupadd www

  useradd www -g www

  mkdir /home/vcache

  chown -R www:www /home/vcache

  chmod -R 750 /home/vcache

  4、編輯/etc/sysctl.conf 優(yōu)化幾個(gè)內(nèi)核參數(shù)

  net.ipv4.tcp_fin_timeout = 30

  net.ipv4.tcp_keepalive_time = 300

  net.ipv4.tcp_syncookies = 1

  net.ipv4.tcp_tw_reuse = 1

  net.ipv4.tcp_tw_recycle = 1

  net.ipv4.ip_local_port_range = 5000 65000

  運(yùn)行sysctl -p 重新按配置文件設(shè)置內(nèi)核參數(shù)

  5、啟動(dòng)Varnishd

  /usr/local/varnish/sbin/varnishd -u www -g www -f /usr/local/varnish/etc/varnish/varnish.conf -a 0.0.0.0:80 -s file,/home/vcache/varnish_cache.data,100M -w 1024,8192,10 -t 3600 -T 127.0.0.1:3500

  參數(shù)說(shuō)明:

  -u 以什么用運(yùn)行

  -g 以什么組運(yùn)行

  -f varnish配置文件

  -a 綁定IP和端口

  -s varnish緩存文件位置與大小

  -w 最小,最大線程和超時(shí)時(shí)間

  -T varnish管理端口,主要用來(lái)清除緩存

  -p client_http11=on 支持http1.1協(xié)議

  -P(大P) /usr/local/varnish/var/varnish.pid 指定其進(jìn)程碼文件的位置,實(shí)現(xiàn)管理

  6、啟動(dòng)varnishncsa用來(lái)將Varnish訪問(wèn)日志寫入日志文件:

  /usr/local/varnish/bin/varnishncsa -n /home/vcache -w /var/log/varnish.log &

  7、Varnish 緩存清除

  /usr/local/varnish/bin/varnishadm -T 192.168.1.180:3500 purge "req.http.host ~ www.5013.org$ && req.url ~ /static/image/tp.php"

  說(shuō)明:

  192.168.1.180:3000 為被清除緩存服務(wù)器地址

  www.5013.org 為被清除的域名

  /static/image/tp.php 為被清除的url地址列表

  清除所有緩存

  /usr/local/varnish/bin/varnishadm -T 192.168.1.180:3500 url.purge *$

  清除image目錄下所有緩存

  /usr/local/varnish/bin/varnishadm -T 192.168.1.180:3500 url.purge /image/

  8、將加入啟動(dòng)項(xiàng)

  vi /etc/rc.local

  ulimit -SHn 51200

  /usr/local/varnish/sbin/varnishd -u www -g www -f /usr/local/varnish/etc/varnish/varnish.conf -a 0.0.0.0:80 -s file,/home/vcache/varnish_cache.data,100M -w 1024,8192,10 -t 3600 -T 127.0.0.1:3500

  /usr/local/varnish/bin/varnishncsa -n /home/vcache -w /var/log/varnish.log &

  9、殺掉varnishd進(jìn)程

  pkill varnishd

  10、查看varnishd命中率

  /usr/local/varnish/bin/varnishstat

  11、更新系統(tǒng)時(shí)間

  yum install -y ntp

  ntpdate time.nist.gov

  echo "00 01 * * * ntpdate time.nist.gov" 》 /etc/crontab

  附件多主機(jī)多域名varnish.conf 配置

  backend blog {

  .host = "198.56.193.190";

  .port = "80";

  }

  backend www {

  .host = "192.168.1.170";

  .port = "80";

  }

  sub vcl_recv {

  if (req.http.host ~ "^(www.)?5013.org$") {

  set req.backend = blog;

  } elsif (req.http.host ~ "^(www.)?(test1.com|test2.com)$") {

  set req.backend = www;

  } else {

  error 404 "Unknown virtual host";

  }

  }

  sub vcl_recv {

  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;

  }

  }

  #把除了以下這些類型請(qǐng)求以外的訪問(wèn)請(qǐng)求全部直接管道發(fā)送到后端的服務(wù)器

  if (req.request != "GET" &&

  req.request != "HEAD" &&

  req.request != "PUT" &&

  req.request != "POST" &&

  req.request != "TRACE" &&

  req.request != "OPTIONS" &&

  req.request != "DELETE") {

  /* Non-RFC2616 or CONNECT which is weird. */

  return (pipe);

  }

 #只有GET與HEAD方法才會(huì)使用Lookup,使用緩存。    if (req.request != "GET" && req.request != "HEAD") {    /* We only deal with GET and HEAD by default */    return (pass);    }    # if (req.http.Authorization || req.http.Cookie) {    #     /* Not cacheable by default */    #     return (pass);    # }    #如果請(qǐng)求的是php頁(yè)面直接轉(zhuǎn)發(fā)到后端服務(wù)器    if (req.url ~ ".(php|cgi)($|?)") {    return (pass);    }    return (lookup);    }    sub vcl_pipe {    return (pipe);    }    sub vcl_pass {    return (pass);    }    sub vcl_hash {    hash_data(req.url);    if (req.http.host) {    hash_data(req.http.host);    } else {    hash_data(server.ip);    }    return (hash);    }    sub vcl_hit {    return (deliver);    }    sub vcl_miss {    return (fetch);    }    sub vcl_fetch {    if (beresp.ttl <= 0s ||    beresp.http.Set-Cookie ||    beresp.http.Vary == "*") {    /*    * Mark as "Hit-For-Pass" for the next 2 minutes    */    set beresp.ttl = 120 s;    return (hit_for_pass);    }    if (req.url ~ ".(png|gif|jpg)$") {    unset beresp.http.set-cookie;    set beresp.ttl = 1h;    }    #設(shè)置圖片的緩存TTL為一小時(shí)    return (deliver);    }    sub vcl_deliver {    return (deliver);    }    sub vcl_error {    set obj.http.Content-Type = "text/html; charset=utf-8";    set obj.http.Retry-After = "5";    synthetic {"    <?xml version="1.0" encoding="utf-8"?>    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">    <html>    <head>    <title>"} + obj.status + " " + obj.response + {"</title>    </head>    <body>    <h1>Error "} + obj.status + " " + obj.response + {"</h1>    <p>"} + obj.response + {"</p>    <h3>Guru Meditation:</h3>    <p>XID: "} + req.xid + {"</p>    <hr>    <p>Varnish cache server</p>    </body>    </html>    "};    return (deliver);    }    sub vcl_init {    return (ok);    }    sub vcl_fini {    return (ok);    }

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 左云县| 铅山县| 襄城县| 杂多县| 云和县| 略阳县| 彭泽县| 恩平市| 宿州市| 台山市| 安徽省| 安乡县| 深水埗区| 聊城市| 阿坝县| 三原县| 满城县| 福州市| 三河市| 紫金县| 宁化县| 循化| 郓城县| 赤城县| 安庆市| 通化市| 寻乌县| 山西省| 唐山市| 宝山区| 峡江县| 鸡东县| 福州市| 西青区| 皋兰县| 沂水县| 呈贡县| 库车县| 彩票| 河间市| 嘉义市|