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了
相關文章
- 修改主機名後DB2的設定方法DB2
- iis主機頭的設定.
- 使用 Varnish 優化移動端站點優化
- DHCP 動態主機設定協議協議
- WAS修改了主機名的設定方法
- Jboss修改預設介面(設定虛擬主機)
- Varnish(二)Varnish4.0安裝與配置
- AIX 主機 — 設定以使用 iSCSI 儲存AI
- oracle 12c主機徹底掛機用failover把備機設定為主機OracleAI
- Windows下的虛擬主機設定全功略(轉)Windows
- 技嘉主機板bios設定怎麼進入圖解 技嘉主機板bios設定u盤啟動方法iOS圖解
- Hexo設定主題以及Next主題個性設定Hexo
- 配置虛擬機器叢集常用設定主機IP操作虛擬機
- 主機可以訪問虛擬機器的網路設定虛擬機
- oracle客戶端連線server 端, tnsnames的三種設定方式Oracle客戶端Server
- 主的設定方法
- 技嘉主機板bios設定按f幾進入 技嘉主機板bios設定u盤啟動怎麼操作iOS
- 設定修改linux主機名遇到的問題Linux
- 如何在虛擬主機設定301定向
- 設定兩臺RAC 主機的信任關係
- 可連線遠端主機情況下新增私鑰到遠端主機
- 操作遠端主機 docker 命令Docker
- 如何設定 MariaDB 主主複製
- WIN10主題設定後背景顏色不能鎖定怎麼處理Win10
- 【linux環境配置】設定linux通過主機名訪問區域網主機Linux
- win 10 uc怎麼設定主頁_win 10 uc設定主頁圖示在哪裡設定
- 如何在 Linux 中顯示和設定主機名?Linux
- RedHat7.2的RemoveIPC設定主yes引起rac當機RedhatREM
- 虛擬機器之僅主機模式(HostOnly)連結外網設定虛擬機模式
- 三層交換機怎麼設定vlan網路
- 三層交換機怎麼設定路由連線路由
- Fiddler(三)Fiddler設定手機抓包
- RubyStack now with Rails 3.2.7 and VarnishAI
- 程式設計極端主義程式設計
- 微信怎麼設定桌布主題背景?微信設定桌布主題背景的方法
- mysql容器的定時備份指令碼,有二種方法,備份好後打包傳送到遠端備份主機MySql指令碼
- IIS設定預設主頁無效
- PostgreSQL如何設定主鍵序列?SQL