varnish4 基礎實戰

實驗環境

node1 192.168.0.8 varnish服務器

node2 192.168.0.3 動態web

node3 192.168.0.7 靜態web

node1安裝varnish

##安裝varnish yum源 
# wget http://repo.varnish-cache.org/redhat/varnish-4.1.el6.rpm  
# yum install varnish-4.1.el6.rpm 

# yum install jemalloc varnish

varnish服務端配置

# vi /etc/sysconfig/varnish     
    ##修改varnish監聽端口為80
    VARNISH_LISTEN_PORT=80

緩存規則配置

# vi /etc/varnish/default.vcl vcl 4.0; 
backend static 
{     
    .host = "192.168.0.7";     
    .port = "80"; 
} 
backend dynamic 
{     
    .host = "192.168.0.3";     
    .port = "80"; 
}  
sub vcl_recv 
{    
    if(req.url ~ "\\.html") 
    {       
        set req.backend=static;    
    }    
    if(req.url ~ "\\.php") 
    {       
        set req.backend=dynamic;
        return(pass);    
     }
}
sub vcl_backend_response { 
        set beresp.ttl = 7200s;
}

啟動varnish并加載緩存規則

# service varnish start # varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082 ## 加載vcl文件 varnish> vcl.load default default.vcl  varnish> vcl.use default   varnish> quit

web服務器node2 node3安裝httpd

node3 192.168.0.7

# yum install httpd # service httpd start # echo "static 192.168.0.7" > /var/www/html/index.html # echo "dynamic 192.168.0.7" > /var/www/html/index.php

node2 192.168.0.3

# yum install httpd # service httpd start # echo "static 192.168.0.3" > /var/www/html/index.html # echo "dynamic 192.168.0.3" > /var/www/html/index.php

測試

# curl -v 192.168.0.8/index.html
* About to connect() to 192.168.0.8 port 80 (#0)
*   Trying 192.168.0.8... connected
* Connected to 192.168.0.8 (192.168.0.8) port 80 (#0)
> GET /index.html HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 192.168.0.8
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Mon, 31 Oct 2016 10:08:52 GMT
< Server: Apache/2.2.15 (CentOS)
< Last-Modified: Mon, 31 Oct 2016 08:43:52 GMT
< ETag: "2c1f-13-540253518f140"
< Content-Length: 19
< Content-Type: text/html; charset=UTF-8
< X-Varnish: 32783 3
< Age: 6288
< Via: 1.1 varnish-v4
< Accept-Ranges: bytes
< Connection: keep-alive
< 
static 192.168.0.7
* Connection #0 to host 192.168.0.8 left intact
* Closing connection #0

# curl -v 192.168.0.8/index.php
* About to connect() to 192.168.0.8 port 80 (#0)
*   Trying 192.168.0.8... connected
* Connected to 192.168.0.8 (192.168.0.8) port 80 (#0)
> GET /index.php HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 192.168.0.8
> Accept: */*
> 
< HTTP/1.1 200 OK
< Date: Mon, 07 Nov 2016 05:03:13 GMT
< Server: Apache/2.2.15 (CentOS)
< Last-Modified: Mon, 07 Nov 2016 02:00:42 GMT
< ETag: "1014db-14-540ac642c51dd"
< Accept-Ranges: bytes
< Content-Length: 20
< Content-Type: text/plain; charset=UTF-8
< X-Varnish: 13
< Age: 0
< Via: 1.1 varnish-v4
< Connection: keep-alive
< 
dynamic 192.168.0.3
* Connection #0 to host 192.168.0.8 left intact
* Closing connection #0

多次訪問可發現index.php始終分配到node2,index.html一直分配在node3,表明動態分離成功

訪問index.html時X-Varnish頭部顯示有2個數字,第一個數字是請求的標識ID,第二個數字是緩存的標識ID,表明緩存已命中!

原創文章,作者:N24_lizi1,如若轉載,請注明出處:http://www.www58058.com/59185

(0)
N24_lizi1N24_lizi1
上一篇 2016-11-15 23:31
下一篇 2016-11-16 16:47

相關推薦

  • 磁盤管理

    1、創建一個10G分區,并格式為ext4文件系統。 (1)虛擬機添加21G硬盤 Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1&nbsp…

    Linux干貨 2016-12-18
  • rpm包及rmp命令詳解

    一、軟件運行環境          ? API: Application Programming Interface              國際標準&nbs…

    Linux干貨 2016-08-22
  • 文本三劍客之sed

    文本處理三劍客之sed sed 本身也是一個管線命令,是一個(流|行)編輯器! 而且 sed 還可以將數據進行取代、刪除、新增、擷取特定行等等的功能。工作模式是從源文件中一次讀取一行,存儲到sed自己的內存中進行處理,如果模式被匹配到就可以編輯并且輸出到標準輸出,如果沒有被匹配到則直接輸出到標準輸出。     sed …

    Linux干貨 2016-08-10
  • 學習宣言

    沒有學不會的技術,只有不勤奮的人!

    Linux干貨 2016-12-28
  • 馬哥linux運維第一天感受

    101個人的大家庭

    Linux干貨 2018-03-26
  • Linux入門知識之計算機基礎

    計算機基礎、linux發行版、命令幫助獲取

    2018-01-11
欧美性久久久久