天天看點

squid和varnish緩存代理伺服器

應用場景:

web通路加速(适用于正/反向解析)

正向:IP僞裝、“×××”

反向:代替公網使用者通路web伺服器

緩存區:硬碟

軟體包:squid-3.3.8-26.e17.x86_64.rpm

系統服務:squid

主程式:/usr/sbin/squid

主比對檔案:/etc/squid/squid.conf

預設監聽端口:TCP 3128

預設通路日志:/var/log/squid/access.log

例:反向代理

步驟一:建構web伺服器

1)使用yum安裝web軟體包

yum -y install httpd

2)啟用httpd服務,并設為開機自動運作

systemctl start httpd 

systemctl enable httpd

httpd服務預設通過TCP 80端口監聽用戶端請求:

netstat -anptu | grep httpd

3)為Web通路建立測試檔案

在網站根目錄/var/www/html下建立一個名為index.html的首頁文

echo webabc > /var/www/html/index.html

步驟二:部署Squid代理伺服器

1)使用yum安裝squid軟體包:

yum -y install squid

2)修改/etc/squid/squid.conf配置檔案:

vim /etc/squid/squid.conf

http_port 80 vhost 設定反向代理,将代理監聽的端口修改為80

visible_hostname www.sina.com 設定主機名,預設沒有該語句

cache_peer 192.168.2.100 parent 80 0 originserver 定義後端真實伺服器資訊

cache_dir ufs /var/spool/squid 200 16 256 硬碟緩存,緩存容量為200M,自動建立16個一級子目錄和256個二級子目錄

http_access allow all 允許本機所有主機使用代理伺服器

3)啟動squid服務,并設定為開機啟動:

systemctl start squid

systemctl enable squid

4)squid服務通過TCP 80端口監聽用戶端請求:

netstat -anptu | grep 80

步驟三:用戶端測試

2)用戶端開啟浏覽器通路

适用:隻做方向代理

專業加速通路web服務

緩存區:硬碟和記憶體

預設監聽端口:TCP 80

配置檔案:/etc/varnish

/etc/init.d/varnish 啟動程式

/etc/sysconfig/varnish 配置檔案,varnish定義自身屬性

/etc/varnish/default.vcl 預設配置檔案,定義後端節點

/usr/bin/varnishadm 用戶端程式

/usr/bin/varnishstat 狀态監控

緩存管理

清除緩存内容的指令格式:

varnishadm -T IP:port -S securefile 

ban.url 頁面檔案名

檢視緩存清理清單:

varnishadm ban.list

varnish日志

varnishlog [-w file] 共享記憶體的日志

varnishncsa [-w file] 通路日志

varnish狀态分析

varnishstat

-Client connections accepted:

表示用戶端成功發送連接配接總數量

-Client requests received:

表示用戶端發送HTTP請求的總數 

-Cache hits:

表示命中緩存的次數

-Cache misses

表示緩存非命中的個數

例:

Web伺服器192.168.2.100、Varnish代理伺服器192.168.4.5,192.168.2.5

步驟一:建構Web伺服器

在網站根目錄/var/www/html下建立一個名為index.html的首頁檔案

echo webbca /var/www/html/index.html

步驟二:源碼安裝Varnish

1)編譯安裝軟體

yum -y install gcc readline-devel pcre-devel //安裝軟體依賴 

useradd -s /sbin/nologin varnish //建立賬戶

tar -xzf varnish-3.0.6.tar.gz

cd varnish-3.0.6

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

make && make install

2)複制啟動腳本及配置檔案

cp redhat/varnish.initrc /etc/init.d/varnish

cp redhat/varnish.sysconfig /etc/sysconfig/varnish

ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/ (建立快捷方式)

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

3)修改Varnish檔案

vim /etc/sysconfig/varnish (前端配置,連接配接用戶端)

VARNISH_LISTEN_PORT=80 預設端口

VARNISH_STORAGE_SIZE=64M 定義緩存大小

VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" (基于記憶體方式緩存,malloc基于記憶體,file基于硬碟)

4)修改代理配置檔案

mkdir /etc/varnish

cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/

uuidgen > /etc/varnish/secret (密碼檔案)

vim /etc/varnish/default.vcl(後端配置,連接配接web伺服器)

backend default {

.host = "192.168.2.100";

.port = "80";

}

起服務:systemctl restart varnish

1)用戶端開啟浏覽器通路

步驟四:其他操作

1)檢視varnish日志

varnishlog //varnish日志

varnishncsa //通路日志

2)更新緩存資料,在背景web伺服器更新頁面内容後,

使用者通路代理伺服器看到的還是之前的資料,

說明緩存中的資料過期了需要更新(預設也會自動更新,但非實時更新)。

varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082

ban.url 頁面檔案名(清緩存)

清空緩存資料,支援正規表達式

     本文轉自夜流璃雨 51CTO部落格,原文連結:http://blog.51cto.com/13399294/2057996,如需轉載請自行聯系原作者

繼續閱讀