squid緩存代理服務器
應用場景:
web訪問加速(適用於正/反向解析)
正向:IP假裝、「×××」
反向:代替公網用戶訪問web服務器html
緩存區:硬盤
軟件包: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 httpdweb
2)啓用httpd服務,並設爲開機自動運行
systemctl start httpd
systemctl enable httpd正則表達式
httpd服務默認經過TCP 80端口監聽客戶端請求:
netstat -anptu | grep httpdvim
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 定義後端真實服務器信息curl
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)客戶端開啓瀏覽器訪問
curl http://192.168.4.5 返回的是192.168.2.100服務的頁面
varnish緩存代理服務器
適用:只作方向代理
專業加速訪問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服務器
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 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)客戶端開啓瀏覽器訪問
firefox http://192.168.4.5
步驟四:其餘操做
1)查看varnish日誌
varnishlog //varnish日誌
varnishncsa //訪問日誌
2)更新緩存數據,在後臺web服務器更新頁面內容後,用戶訪問代理服務器看到的仍是以前的數據,說明緩存中的數據過時了須要更新(默認也會自動更新,但非實時更新)。varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082ban.url 頁面文件名(清緩存)清空緩存數據,支持正則表達式