Varnish-緩存服務器和負載均衡

一. varnish 下載與安裝

1. 下載:

登陸官網

2.  安裝:

yum install -y varnish-6.4.0-1.el7.x86_64.rpm

二. 配置varnish

配置文件:

查看varnish配置文件

rpm -qc varnish-6.3.1-1.el7.x86_64  

查看varnish啓動腳本

vim /usr/lib/systemd/system/varnish.service

查看系統打開最大文件數

sysctl -a | grep file-max

最大文件數無法滿足varnish,這種情況下我們可以通過增加主機內存或將varnish最大文件數改小。

查看系統內存限制

vim /etc/security/limits.conf

啓動服務,查看端口

systemctl start varnish
netstat -antuple | grep varnish

三. varnish 使用

1. 反向代理

修改端口:

這裏改爲80端口,是因爲要做http服務端代理,http默認訪問80端口,不影響客戶感知 

在瀏覽器訪問

可以訪問到varnish,現階段因爲當前服務端還沒有數據 

配置varnish,將請求交給node2的80端口

vim /etc/varnish/default.vcl

node2主機當前還沒有80端口

在node2上配置httpd服務,啓用80端口

再次訪問瀏覽器,可以獲取到node2上的內容 

也就是說我們在訪問node1時,請求被調度到node2上,因此訪問到的是node2中的內容

2. 緩存

修改varnish配置,添加返回信息(http)並說明是讀取緩存還是新數據

vim /etc/varnish/default.vcl

重啓服務

systemctl restart varnish

訪問:

    1. CDN推送

[email protected]QQ客服

客服論壇400-660-0108

工作時間 8:30-22:00

關於我們招聘廣告服務 網站地圖

京ICP備19004658號 經營性網站備案信息

公安備案號 11010502030143

京網文〔2020〕1039-165號

©1999-2020 北京創新樂知網絡技術有限公司 網絡110報警服務

北京互聯網違法和不良信息舉報中心

中國互聯網舉報中心家長監護

版權與免責聲明版權申訴

varnish【緩存服務器和負載均衡】

dsd2333 2020-04-30 11:28:12  62  收藏  原力計劃

展開

Table of Contents

1. varnish下載與安裝

2. 配置varnish

3. varnish使用

反向代理

緩存

請求轉發

負載均衡

CDN推送


1. varnish下載與安裝

安裝包網上都可以搜索到,這裏我就不贅餘介紹了,這裏我已經將其放在Apache默認發佈目錄下,直接通過lftp連接,使用get下載

將.rpm文件下載好後,就可以直接安裝了,步驟很簡單,就不詳細介紹了,直接貼圖

2. 配置varnish

  • 查看配置文件
rpm -qc varnish-6.3.1-1.el7.x86_64  # 查看varnish配置文件

  • 查看varnish啓動腳本
vim /usr/lib/systemd/system/varnish.service

最大文件數131072,默認內存限制82MB

  • 查看系統打開最大文件數
sysctl -a | grep file-max

最大文件數是97757,很明顯無法滿足varnish,這種情況下我們可以通過增加主機內存將varnish最大文件數改小

  • 查看系統內存限制

系統內存限制爲64,明顯小於varnish的82

vim /etc/security/limits.conf

  • 啓動服務,查看端口

 
  1. systemctl start varnish

  2. netstat -antuple | grep varnish

3. varnish使用

反向代理

  • 修改端口

這裏改爲80端口,因爲要做http服務端代理,http默認訪問80端口,不影響客戶感知 

  • 在瀏覽器訪問node1

以發現,可以訪問到varnish,現階段因爲當前服務端還沒有數據

  • 配置varnish,將請求交給node2的80端口
vim /etc/varnish/default.vcl

但是node2主機當前還沒有80端口

  • 在node2上配置httpd服務,啓用80端口

再次訪問瀏覽器,會發現已經獲取到node2上的內容

也就是說我們在訪問node1時,請求被調度到node2上,因此訪問到的是node2中的內容

緩存

修改varnish配置,添加返回信息(http)並說明是 讀取緩存 還是 新數據

vim /etc/varnish/default.vcl

重啓服務

systemctl restart varnish
  • 訪問node1

這是我們第一次訪問,因此沒有命令緩存,顯示的是MISS from varnish cache。

再次訪問:

從第二次訪問開始,內容都是從緩存中讀取的,不需要再次重新從源服務器獲取。

手動清理緩存 (默認120s自動清理緩存)

varnishadm ban req.url "~" /   
varnishadm ban req.url "~" /index.html
#  / 表示所有緩存
#  / index.html 只表示這個頁面

清理完緩存後

3. 請求轉發

添加一個服務器node3,編輯請求轉發模塊,請求都是從node1發出的,經過調度均分到node2或者node3:

當訪問 xxx.dsd.org 時轉化爲 www.dsd.org,訪問的服務器是web1

當訪問 bbs.dsd.org  時訪問的服務器是web2

如果訪問的是其他域名,報錯

重啓varnish

在node3安裝並開啓httpd服務,並修改默認發佈頁面

編輯本地解析文件

vim /etc/hosts

測試

4. 負載均衡

通過負載均衡,使得服務器輪循的接受請求

尋找所需庫文件:

編輯varnish配置文件:

backend:定義好兩個後端

初始化:round_robin()表示輪循接受

定義請求轉發:當訪問 www.dsd.org 時,會輪循訪問兩個服務器

要求不緩存:因爲會產生緩存,沒有辦法看到實際的輪循效果,在這裏設置不緩存

訪問 www. dsd.org 時會做負載均衡分配給 node2 和 node3,而 bbs.dw.org 未做負載均衡 

5. CDN推送

下載安裝bansys.zip

編輯配置文件並修改端口號

vim /var/www/html/bansys/config.php
vim /etc/httpd/conf/httpd.conf

訪問node1的8080端口

但是這個時候所有人都能訪問。但是在實際生活中,只能讓部分管理員有權限去推送,這就需要去做權限管理

vim /etc/varnish/default.vcl

編輯一個acl,用來插入允許訪問的ip

在recv中添加和php通信部分 

curl -I www.dw.org

 

 

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