您好,登錄后才能下訂單哦!
由于一個web站點的程序的訪問具有局部性特征:時間上的局部性:一個數據被訪問過之后,可能很快會被再次訪問到;空間局部性:一個數據被訪問時,其周邊的數據也有可能被訪問到;varnish可將這部分數據緩存下來.
緩存的數據存在被訪問較頻繁的數據可以稱其為熱區:緩存同樣存在局部性;時效性:如果緩存空間耗盡:則采用LRU,最近最少使用算法;將過期的緩存清理掉
Varnish通過類似于HTPP反向代理的方式將可以用來緩存的數據緩存下來直接響應給客戶端的緩存數據,如果緩存中
沒有相應的數據,它將會把請求指向后端機器,獲取響應的數據進行響應客戶端。
當varnish有緩存的時候響應通常只需要極短的時間,比直接訪問后端機器通常要快幾個量級,所以要盡可能的將可緩存的頁面緩存到varnish中。
varnish工作模式圖:
varnish的處理機制圖:
哪些數據可以緩存或是不可緩存:1.盡量將站點公共的數據緩存下來;2.用排除用戶的私有數據.
基礎拓撲圖:
ntpdata 172.16.0.1 同步時間
安裝varnish程序:
yum install varnish
編輯varnish的主配置文件:
vim /etc/varnish/varnish.params 添加最后一行: DAEMON_OPTS="-p thread_pools=3 -p thread_pool_min=5 -p thread_pool_max=1000 -p thread_pool_timeout=300"
啟動varnish程序:
systemctl restart varnish
編輯varnish的vcl配置文件:
vim /etc/varnish/default.vcl
作出如下基礎配置:
vcl 4.0; # Default backend definition. Set this to point to your content server. backend default { .host = "192.168.5.109"; .port = "80"; } backend nginxsrvs { .host = "192.168.5.108"; .port = "80"; } 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. if (req.method == "PURGE") { return(purge); } if (req.url ~ "(?i)^/(login|admin)") { return(pass); } if (req.url ~ "(?i)\.(html|htm|css|svg|js|jpg|jpeg|png|gif|pdf)") { set req.backend_hint = nginxsrvs; } else { set req.backend_hint = default; } } sub vcl_purge { return (synth(200,"Purged")); } sub vcl_deliver { if (obj.hits>0) { set resp.http.X-Cache = "HIT via " + server.ip; } else { set resp.http.X-Cache = "Miss via " + server.ip; }
將default.vcl文件編譯加載至varnish程序:
varnishadm -S secret 進入varnish配置的cli界面,執行編譯加載: vcl.load test1 default.vcl vcl.use test1 quit
yum install httpd mkdir -p /apps/data (需要考慮權限)
將wordpress的源碼文件cp至目錄下
編輯httpd的站點配置文件
vim /etc/httpd/conf.d/wordpress.conf
<VirtualHost *:80> DirectoryIndex index.php index.html ServerName www.abc.com DocumentRoot /apps/data/wordpress <Directory "/apps/data/"> Options FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
啟動httpd程序:
systemctl restart httpd
yum install nfs-utils vim /etc/exports /apps/data *(rw,all_squash,anonuid=48)
yum install nginx #這里要用到nginx官方提供的yum源
配置/etc/nginx/conf.d/default.conf文件,作出如下修改
vim /etc/nginx/conf.d/default.conf location / { root /apps/data/wordpress; #指明web程序的路徑 index index.html index.htm; }
啟動nginx服務程序
systemctl restart nginx
更改hosts文件即可做訪問測試.
varnish的基礎配置實現已完成.
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。