Linux Operation學習------Squid/Varnish

一、代理服務器Squid
1.1Squid服務器
反向代理工做機制:代替公網用戶訪問組織內部的web服務器
部署基於地區的CDN服務器
軟件包:squid
系統服務:squid
主程序:/usr/sbin/squid
主配置文件:/etc/squid/squid.conf
默認監聽端口:TCP 3128
默認訪問日誌:/var/log/squid/access.log
proxy : 代理
1.2部署步驟
後臺真正的服務器(web1)
1)yum -y install httpd
systemctl start httpd systemctl enable httpd
2)在/var/www/http寫頁面
部署squid代理服務器(proxy)
1)yum -y install squid
2)vim /etc/squid/squid.conf
http_port 80 vhost #設置訪問的web說明是代理服務器
visible_hostname svr5.tarena.com #設置主機名,默認沒有該語句 visible(可見的)
cache_peer 192.168.2.100 parent 80 0 originserver
#定義後端真實服務器信息 origin起源
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)客戶端測試
crul http://192.168.4.5(代理服務器) #顯示後臺真正服務器的頁面
[root@Client ~]# curl -I http://192.168.4.5 #查看頭部信息
HTTP/1.1 200 OK
Last-Modified: Wed, 03 Jan 2018 02:55:21 GMT
Accept-Ranges: bytes
Content-Length: 14
Content-Type: text/html; charset=UTF-8
Date: Wed, 03 Jan 2018 03:54:50 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) #服務端使用的服務
ETag: "e-561d6589eaaf0"
Age: 0
X-Cache: HIT from Proxy #hit 代表緩存給的頁面 miss表示不是緩存
X-Cache-Lookup: HIT from Proxy:80
Via: 1.1 Proxy (squid/3.3.8)
Connection: keep-alivehtml

二、Varnish
緩存在內存或者硬盤(squid在硬盤)
2.1構建Web服務器
使用yum安裝web軟件包(httpd)
啓用httpd服務,並設爲開機自動運行
2.2部署Varnish緩存服務器
⑴編譯安裝軟件
[root@svr5 ~]# yum -y install gcc readline-devel pcre-devel gcc-c++ //安裝軟件依賴包
[root@svr5 ~]# useradd -s /sbin/nologin varnish //建立帳戶
[root@svr5 ~]# tar -xzf varnish-3.0.6.tar.gz
[root@svr5 ~]# cd varnish-3.0.6
[root@svr5 varnish-3.0.6]# ./configure --prefix=/usr/local/varnish
[root@svr5 varnish-3.0.6]# make && make install
⑵複製啓動腳本及配置文件
[root@svr5 varnish-3.0.6]# cp redhat/varnish.initrc /etc/init.d/varnish
[root@svr5 varnish-3.0.6]# cp redhat/varnish.sysconfig /etc/sysconfig/varnish
[root@svr5 varnish-3.0.6]# ln -s /usr/local/varnish/sbin/varnishd /usr/sbin/
[root@svr5 varnish-3.0.6]# ln -s /usr/local/varnish/bin/* /usr/bin/
⑶修改Varnish文件
vim /etc/sysconfig/varnish #前端配置
vim /etc/varnish/default.vcl #後端配置
[root@svr5 ~]# vim /etc/sysconfig/varnish
66行:VARNISH_LISTEN_PORT=80 #默認端口
89行:VARNISH_STORAGE_SIZE=64M #定義緩存大小
92行:VARNISH_STORAGE="malloc,${VARNISH_STORAGE_SIZE}" #基於內存方式緩存
(4)修改代理配置文件
[root@svr5 ~]# mkdir /etc/varnish
[root@svr5 ~]# cp /usr/local/varnish/etc/varnish/default.vcl /etc/varnish/
[root@svr5 ~]# uuidgen > /etc/varnish/secret
[root@svr5 ~]# vim /etc/varnish/default.vcl
backend default {
.host = "192.168.2.100";
.port = "80";
}
程序【硬盤】 program
進程【內存】 process
線程【進程下多個線程】thread前端

2.3客戶端測試
service varnish start
curl http://192.168.4.5
/etc/init.d/varnish start
2.4其餘操做
⑴查看varnish日誌
[root@svr5 ~]# varnishlog #varnish日誌 ping本身的後臺
[root@svr5 ~]# /usr/local/varnish/bin/varnishlog #沒有作連接文件的操做
[root@svr5 ~]# varnishncsa #訪問日誌 客戶端訪問纔有反應
[root@server01 ~]# /usr/local/varnish/bin/varnishcsa
[root@server01 ~]# /usr/local/varnish/bin/varnishadm stop #中止服務
[root@server01 ~]# /usr/local/varnish/bin/varnishadm start #啓動服務
[root@server01 ~]# /usr/local/varnish/bin/varnishadm status #查看狀態
[root@server01 ~]# /usr/local/varnish/bin/varnishadm ban.url / #清空緩存
⑵更新緩存數據,在後臺web服務器更新頁面內容後,用戶訪問代理服務器看到的仍是以前的數據,說明緩存中的數據過時了須要更新(默認也會自動更新,但非實時更新)
[root@svr5 ~]# varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 ban.url 頁面文件名(/根)
#清空緩存數據,支持正則表達式(非交互)
緩存過時:
1)本身更新
2)手動更新(在/etc/sysconfig/varnish查看端口以及安全文件)(交互)
varnishadm –S /etc/varnish/secret –T 127.0.0.1:6082 #進入
backend.list #查看後端的信息
ban.url .* #全部更新
⑶varnish狀態
varnishstat
Client connections accepted #表示客戶端成功發送鏈接總數量
Client requests received #客戶端發送http請求的總數
Cache hits #命中緩存的次數
Cache misses #緩存非命中的個數c++

netstat -anptu | grep 80web

相關文章
相關標籤/搜索