Varnish(三)設定後端主機
設定後端主機
後端2臺web伺服器已經設定好了
使用輪詢演算法排程
Varnish定義設定輪詢後端主機示例
[root@localhost ~]# cat /etc/varnish/default.vcl
vcl 4.0;
import directors;
backend server1 {
.host = "192.168.253.129";
.port = "80";
}
backend server2 {
.host = "192.168.253.158";
.port = "80";
}
sub vcl_init{
new RR = directors.round_robin(); ##輪詢演算法
RR.add_backend(server1);
RR.add_backend(server2);
}
sub vcl_recv {
set req.backend_hint=RR.backend();
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
重新裝在配置檔案,因為我們訪問一次之後就回產生快取第二次訪問的時候直接從快取命中的所以看不出效果。所以先請求一次。然後再ban掉再請求一次。看是否有輪詢的效果
然後ban掉
最後再次請求
我們可以看到第一次請求是分配到192.168.253.129上的,第二個請求則是分配到192.168.253.158
動靜分離
Varnish定義設定後端主機實現動靜分離示例
[root@localhost ~]# grep -Ev "#|^$" /etc/varnish/default.vcl
vcl 4.0;
backend default {
.host = "192.168.253.129";
.port = "80";
}
backend appsrv {
.host = "192.168.253.158";
.port = "80";
}
sub vcl_recv {
if (req.url ~ "(?i)\.php$") {
set req.backend_hint = appsrv;
} else {
set req.backend_hint = default;
}
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
重新裝載配置檔案後
基於cookie的會話保持
[root@localhost ~]# cat /etc/varnish/default.vcl
vcl 4.0;
import directors;
backend server1 {
.host = "192.168.253.129";
.port = "80";
}
backend server2 {
.host = "192.168.253.158";
.port = "80";
}
sub vcl_init{
new H = directors.hash(); ##隨機演算法,可以設定權重
H.add_backend(server1,1); #權重為1
H.add_backend(server2,1); #權重為1
}
sub vcl_recv {
set req.backend_hint = H.backend(req.http.cookie); #基於cookie會話保持
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
重新裝載配置檔案,先訪問一次
然後ban掉快取
再次訪問
健康檢查
格式
.probe:定義健康狀態檢測方法;
.url:檢測時要請求的URL,預設為”/";
.request:探測後端主機健康狀態時所請求內容的詳細格式,定義後,它會替換.url指定的探測方式
例如:
.request =
"GET /index.html HTTP/1.1"
"Host: 192.168.253.128"
"Connection: close"
.window:基於最近的多少次檢查來判斷其健康狀態;
.threshold:最近.window中定義的這麼次檢查中至有.threshhold定義的次數是成功的;
.interval:檢測頻度;
.timeout:超時時長;
.expected_response:期望的響應碼,預設為200;
示例
[root@localhost ~]# cat /etc/varnish/default.vcl
vcl 4.0;
import directors;
probe check { #定義一個全域性的健康檢查配置
.url = "/index.html"; #檢查的url
.window = 5; #基於最近5次來檢查健康狀態
.threshold = 4; #最近5次檢查中有4次是健康才算是健康的
.interval = 2s; #間隔2s
.timeout = 1s; #超時時間1s
}
backend server1 {
.host = "192.168.253.129";
.port = "80";
.probe = check;
}
backend server2 {
.host = "192.168.253.158";
.port = "80";
.probe = { ##可以使用在前面定義的,也可以在backend內自己定義
.url = "/index.html";
.window = 5;
.threshold = 5;
.interval = 1s;
.timeout = 1s;
}
}
sub vcl_init{
new RR = directors.round_robin(); ##輪詢演算法
RR.add_backend(server1);
RR.add_backend(server2);
}
sub vcl_recv {
set req.backend_hint=RR.backend();
}
sub vcl_backend_response {
}
sub vcl_deliver {
}
重新裝載配置檔案,進入命令列介面
然後我們可以down了後面的192.168.253.158主機
再次檢視
可以看到這裡發現後端192.168.253.158主機down了
相關文章
- Varnish(二)Varnish4.0安裝與配置
- 技嘉主機板bios設定怎麼進入圖解 技嘉主機板bios設定u盤啟動方法iOS圖解
- oracle 12c主機徹底掛機用failover把備機設定為主機OracleAI
- 技嘉主機板bios設定按f幾進入 技嘉主機板bios設定u盤啟動怎麼操作iOS
- gigabyte是什麼主機板 gigabyte主機板設定bios和cpu圖解iOS圖解
- Fiddler(三)Fiddler設定手機抓包
- 如何設定 MariaDB 主主複製
- 如何在 Linux 中顯示和設定主機名?Linux
- WIN10主題設定後背景顏色不能鎖定怎麼處理Win10
- win 10 uc怎麼設定主頁_win 10 uc設定主頁圖示在哪裡設定
- RedHat7.2的RemoveIPC設定主yes引起rac當機RedhatREM
- windows遠端桌面設定,windows遠端桌面設定的方法Windows
- 可連線遠端主機情況下新增私鑰到遠端主機
- 操作遠端主機 docker 命令Docker
- 英特爾主機板應該怎麼設定隨身碟啟動?英特爾主機板設定隨身碟啟動的方法步驟
- 部落格園主題設定
- PostgreSQL如何設定主鍵序列?SQL
- Varnish(一)簡介與原理
- ie怎麼設定主頁 簡述設定ie瀏覽器的主頁方法瀏覽器
- dell主機板win10如何設定通電自動啟動_dell主機板win10怎麼設定通電自動啟動Win10
- 主機板定製中X86主機板和ARM主機板的比較
- 多伺服器使用Docker設定一主一從三哨兵redis(完整)伺服器DockerRedis
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- MacOS設定終端代理Mac
- 微信怎麼設定桌布主題背景?微信設定桌布主題背景的方法
- BlueHost主機cPanel皮膚目錄隱私設定圖文教程
- 技嘉主機板u盤啟動按f幾進入bios 技嘉主機板bios設定方法介紹iOS
- hexo-theme-next主題設定Hexo
- VirtualBox虛擬機器遠端桌面連線設定詳解(包含登入密碼設定)虛擬機密碼
- 自定義滑鼠設定-中鍵設定為後退
- 華碩主機板u盤啟動按f幾 華碩主機板怎麼設定u盤啟動
- Virtual box設定主機和虛擬機器複製貼上和檔案拖拽虛擬機
- 設定Windows主機的瀏覽器為wls2的預設瀏覽器Windows瀏覽器
- 技嘉主機板設定隨身碟啟動安裝系統方法
- 給linux(centos)作業系統設定主機名的幾種方式LinuxCentOS作業系統
- win10怎麼設定microsoftedge的主頁 win10系統microsoftedge主頁設定方法Win10ROS
- win10呼吸主題怎麼設定 win10系統呼吸效果主題設定方法Win10
- Ubuntu 設定遠端桌面(RDP)Ubuntu