一、采用varnish为nginx实现缓存加速1、实验环境:(1)一台varnish缓存服务器,一台nginx服务器(2)关闭防火墙和selinux2.配置varnish(1)修改varnish配置文件:
创建目录:mkdir -pv /data/varnish/cache 修改属主:chown varnish.varnish /data/varnish/cache
(2)测试:二、varnish实现动静分离(1)varnish配置:(2)测试:(3)附件内容设置多个组,并做负载:
示例: import directors backend imgsrv1 { .host = "192.168.10.11"; .port = "80"; } backend imgsrv2 { .host = "192.168.10.12"; .port = "80"; } backend appsrv1 { .host = "192.168.10.21"; .port = "80"; } backend appsrv2 { .host = "192.168.10.22"; .port = "80"; } sub vcl_init { new imgsrvs = directors.random(); imgsrvs.add_backend(imgsrv1,10); imgsrvs.add_backend(imgsrv2,20); new staticsrvs = directors.round_robin(); appsrvs.add_backend(appsrv1); appsrvs.add_backend(appsrv2); new appsrvs = directors.hash(); appsrvs.add_backend(appsrv1,1); appsrvs.add_backend(appsrv2,1); } sub vcl_recv { if (req.url ~ "(?i)\.(css|js)$" { set req.backend_hint = staticsrvs.backend(); } if (req.url ~ "(?i)\.(jpg|jpeg|png|gif)$" { set req.backend_hint = imgsrvs.backend(); } else { set req.backend_hint = appsrvs.backend(req.http.cookie); } }
安全检测:
.probe:定义健康状态检测方法; .url:检测时要请求的URL,默认为”/"; .request:发出的具体请求; .request = "GET /.healthtest.html HTTP/1.1" "Host: www.ww.com" "Connection: close" .window:基于最近的多少次检查来判断其健康状态; .threshold:最近.window中定义的这么次检查中至有.threshhold定义的次数是成功的;成功阈值; .interval:检测频度; .timeout:超时时长; .expected_response:期望的响应码,默认为200; 健康状态检测的配置方式: probe PB_NAME { } backend NAME = { .probe = PB_NAME; ... }