varnish

CDN

    CDN的全稱是Content Delivery Network,即內容分發網絡。其目的是通過在現有的Internet中增加一層新的網絡架構,將網站的內容發佈到最接近用戶的網絡"邊緣",使用戶可以就近取得所需的內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度。從技術上全面解決由於網絡帶寬小、用戶訪問量大、網點分佈不均等原因所造成的用戶訪問網站響應速度慢的問題。

        easy-cdn它使您能夠快速、簡單的部署CDN系統,所用工具爲squid+bind(view),

varnish

操作環境:

  物理機一臺,三個6.5的虛擬機server1-server3

操作過程:

1.後端服務器的配置

物理主機訪問server1,事實是訪問server2

Server1

   (1)###安裝varnish軟件包

     129 yum install varnish-3.0.5-1.el6.x86_64.rpm  varnish-libs-3.0.5-1.el6.x86_64.rpm -y   

   (2)###配置一個後端服務器:

     132  cd/etc/varnish/

     133  ls

     134 vim default.vcl    

           7 backend web1{

           8  .host = "172.25.21.2";

           9  .port = "80";

           10 }

  (3)###配置 varnish 服務端口:

      135 vim/etc/sysconfig/varnish

            66 VARNISH_LISTEN_PORT=80

      137  /etc/init.d/varnish start   ###開啓varnish服務

     138 netstat -antlp  ####查看有沒有80端口

 截圖:

wKiom1lyHJDxgzujAAIjKh5jzX8303.png-wh_50


 Server2

 安裝httpd,在共享目錄下建立共享文件建立

   16 yum install httpd -y

   17 /etc/init.d/httpd  start

   18  cd/var/www/html

   19  ls

   20 vim index.html  

   21 cat index.html

截圖:

 wKioL1lyHPiRZMaaAAGc6kEUxMw478.png-wh_50

物理機測試:

[root@foundation21~]# vim /etc/hosts   ###本地解析截圖:

[root@foundation21~]# curl www.westos.org

<h1>server2</h1>

 wKioL1lyHJGBHCxAAABvmINUwx0098.png-wh_50

瀏覽器輸入:172.25.21.1

截圖:

wKioL1lyHPagh0uSAAAszYlPjXI905.png-wh_50



2.緩存配置:

Server1

###查看緩存命中情況:

[root@server1varnish]# vim default.vcl

 12 sub vcl_deliver {

 13 if (obj.hits > 0) {

 14        set resp.http.X-Cache = "HIT from westos cache";

 15 }

 16 else {

 17 set resp.http.X-Cache = "MISS fromwestos cache";

 18 }

 19 return (deliver);

 20 }

[root@server1 varnish]#/etc/init.d/varnish reload

截圖:

 wKiom1lyHPnR9k7dAACxZPk8atA382.png-wh_50

物理機:

###測試緩存命中:

[root@foundation21~]# curl -I 172.25.21.1

HTTP/1.1 200 OK

Server:Apache/2.2.15 (Red Hat)

Last-Modified:Thu, 20 Jul 2017 02:43:21 GMT

ETag:"40026-12-554b6b639ddea"

Content-Type:text/html; charset=UTF-8

Content-Length: 18

Accept-Ranges:bytes

Date: Thu, 20 Jul2017 03:06:35 GMT

X-Varnish:1716317952

Age: 0

Via: 1.1 varnish

Connection:keep-alive

X-Cache: MISS from westos cache  #未命中

 

[root@foundation21~]# curl -I 172.25.21.1

HTTP/1.1 200 OK

Server:Apache/2.2.15 (Red Hat)

Last-Modified:Thu, 20 Jul 2017 02:43:21 GMT

ETag:"40026-12-554b6b639ddea"

Content-Type:text/html; charset=UTF-8

Content-Length: 18

Accept-Ranges:bytes

Date: Thu, 20 Jul2017 03:08:04 GMT

X-Varnish:1716317953 1716317952

Age: 89

Via: 1.1 varnish

Connection:keep-alive

X-Cache: HIT from westos cache #命中

 

### 通過 varnishadm 手動清除緩存:

 

 [root@server1 varnish]#varnishadm ban.url .*$  #清除所有

 [root@server1 varnish]#varnishadm ban.url/index.html  #清除 index.html 頁面緩存

[root@server1varnish]# varnishadm ban.url /admin/$  #清除 admin 目錄緩存

 

3. 定義多個不同域名站點的後端服務器

Server1

1###定義多個不同域名站點的後端服務器

backend web1 {

.host ="172.25.21.2";

.port ="80";

}

backend web2 {

.host ="172.25.21.3";

.port ="80";

}

 

[root@server1varnish]# vim default.vcl

[root@server1varnish]# /etc/init.d/varnish reload

Loading vcl from/etc/varnish/default.vcl

Current runningconfig name is reload_2017-07-20T11:05:50

Using new configname reload_2017-07-20T11:22:36

Message fromVCC-compiler:

Unused backendweb2, defined:

('input' Line 11Pos 9)

backend web2 {

--------####--

 

RunningVCC-compiler failed, exit 1

VCL compilationfailed

Command failedwith error code 106

varnishadm -S/etc/varnish/secret -T 127.0.0.1:6082 vcl.load failed

有問題需要進行(2

2#當訪問 www.westos.org 域名時從 web1 上取數據,訪問 bbs.westos.org 域名時到 web2 取數據訪問其他頁面報錯。

sub vcl_recv {

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

set req.http.host= "www.westos.org";

set req.backend =web1;

} elsif(req.http.host ~ "^bbs.westos.org") {

set req.backend =web2;

} else {error 404"westos cache";

}

}

 

[root@server1varnish]# vim default.vcl

[root@server1varnish]# /etc/init.d/varnish reload

Loading vcl from/etc/varnish/default.vcl

Current runningconfig name is reload_2017-07-20T11:05:50

Using new configname reload_2017-07-20T11:31:05

VCL compiled.

 

available       0 boot

available       2 reload_2017-07-20T11:05:50

active          0 reload_2017-07-20T11:31:05

Done

配置文件內容截圖:

wKioL1lyHeyDo1KcAAD0XlMjfYk186.png-wh_50

server3

    10  yum install httpd -y

    11 /etc/init.d/httpd  start

   12  cd /var/www/html

   13  ls

   14 vim index.html

   15 cat index.html

截圖:

 wKiom1lyHe6RRCXnAAIEEHeD6dc594.png-wh_50

物理機

[root@foundation21~]# vim /etc/hosts   ###本地解析截圖:

wKiom1lyHe2TaypYAABtqoEsvz0105.png-wh_50

[root@foundation21~]# curl  172.25.21.1   ##訪問ip出錯。只能訪問域名

 

<?xmlversion="1.0" encoding="utf-8"?>

<!DOCTYPE htmlPUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

  <head>

    <title>404 westos cache</title>

  </head>

  <body>

    <h1>Error 404 westos cache</h1>

    <p>westos cache</p>

    <h3>Guru Meditation:</h3>

    <p>XID: 1716317954</p>

    <hr>

    <p>Varnish cache server</p>

  </body>

</html>

[root@foundation21~]# curl www.westos.org

<h1>server2</h1>

[root@foundation21~]# curl bbs.westos.org

<h1>server3</h1>

 

4.負載均衡

 

Server2:

[root@server2html]# mkdir /www/bbs -p

[root@server2html]# mkdir /www/westos

[root@server2html]# cd /www/bbs/

[root@server2bbs]# ls

[root@server2bbs]# vim /etc/httpd/conf/httpd.conf

wKiom1lyHjzhCbnDAAGxig8n-js933.png-wh_50

wKioL1lyHj3wPxjHAAEMjxcjoyc034.png-wh_50

[root@server2bbs]# /etc/init.d/httpd restart

Stoppinghttpd:                                           [  OK  ]

Startinghttpd: httpd: Could not reliably determine the server's fully qualified domainname, using 172.25.21.2 for ServerName

                                                          [  OK  ]

[root@server2bbs]# vim /etc/hosts

[root@server2bbs]# vim index.html

[root@server2bbs]# cd /www/westos/

[root@server2westos]# ls

[root@server2westos]# vim index.html

 

Server1:

 

[root@server1 varnish]# vim default.vcl

[root@server1 varnish]# /etc/init.d/varnish reload

截圖:

 wKiom1lyHj-RKnMTAAD-A_3-isI886.png-wh_50

測試:

物理機瀏覽器:www.westos.org  bbs.westos.org

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章