Varnish代理服務器的解析以及搭建

Varnish代理服務器

Varnish是什麼?

Varnish是一款高性能的開源HTTP加速器,其主要用來做爲反向代理中的緩存服務器使用,varnish的設計架構就是利用操作系統的緩存機制處理訪問

varnish與squid的區別:

Varnish與Squid都是一個反向代理服務器,都可用作高性能的代理緩存服務器,並且都是開源軟件
    
1.Varnish穩定性很高,squid相比varnish故障機率大

2.Varnish訪問速度更快,所有緩存數據都直接從內存讀取,而Squid從硬盤讀取緩存數據

3.Varnish支持更多的併發連接,因爲Varnish的TCP連接釋放要比Squid快

4.Varnish可以通過管理端口,使用正則表達式批量清除部分緩存,而Squid不能

5.Varnish進程一旦掛起、崩潰或者重啓,緩存數據都會從內存中完全釋放,此時所有請求都會被髮送到後端服務器,在高併發情況下,這會給後端服務器造成很大壓力

6.Varnish配置相比Squid簡單,監控接口豐富,性能好,但Squid資料多,功能豐富,支持對ACL的訪問控制

安裝配置varnish反向代理服務器

客戶端:本機192.168.0.100

代理服務器:192.168.0.105

網頁服務器:192.168.0.101

1.安裝相關支持包

yum -y install gcc readline-devel ncurses-devel pcre-devel python-docutils libtoollibxslt groff pkgconfig libedit-devel

2.編譯安裝varnish

tar zxf varnish-4.0.5.tar.gz

cd varnish-4.0.5

./configure --prefix=/usr/local/varnish --enable-debugging-symbols

make && make install

3.路徑優化

ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/

ln -s /usr/local/varnish/bin/* /usr/bin/

4.複製配置文件模板並使用修改配置文件

cp /usr/local/varnish/share/doc/varnish/example.vcl /usr/local/varnish/default.vcl

vim /usr/local/varnish/default.vcl

修改成代理的IP地址和端口

5.啓動服務訪問代理服務器測試

varnishd -f /usr/local/varnish/default.vcl

varnish負載均衡羣集

客戶端:本機192.168.0.100

代理服務器:192.168.0.105

網頁服務器1:192.168.0.101

網頁服務器2:192.168.0.102

1.修改配置文件

vim /usr/local/varnish/default.vcl

4.0版本後將director編寫爲varnish的模塊

import directors;  \\加載directors模塊
#添加後端真實服務器
backend web1 {
    .host = "192.168.0.101";
    .port = "80";
}
backend web2 {
    .host = "192.168.0.102";
    .port = "80";
}
#初始化模塊,定義director
sub vcl_init {
     new bar = directors.round_robin();  \\定義調度算法,  random   dns
     bar.add_backend(web1);	
     bar.add_backend(web2);
}
#設置緩存配置
sub vcl_recv {
    # Happens before we check if we have this in cache already.
    #
    # Typically you clean up the request here, removing cookies you don't need,
    # rewriting the request, etc.
    set req.backend_hint = bar.backend();    \\把流量轉發給directors
    return(pass);  \\設置不進行緩存
}

啓動服務訪問代理服務器ip

點擊刷新頁面跳轉到另一臺服務器的頁面

補充:添加健康檢查配置

修改配置文件: vim /usr/local/varnish/default.vcl

backend web1 {
	.host = "192.168.0.101";
	.port = "80";
	.probe = { //開啓健康檢查
	.url = "/"; //請求的URL路徑
	.interval = 5s; //查詢間隔時間
	.timeout = 1s; //超時時間
	.window = 5; //varnish保持的結果滑動窗口,該滑動窗口是一種流量控制方法,允許發送方在停止並等待確認前可以連續發送多個分組。由於發送方不必每發送一個分組就停下來等待確認,所有此協議可以加速數據傳輸
	.threshold = 3; //上次檢查.window數量的多少,才代表後端是健康的
	}
	}

重啓服務測試

 

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