文章目录

[隐藏]

  • 一、安装varnish相关软件
  • 二、修改varnish配置文件
  • 三、修改内核显示,保证流量大时,服务正常运行
  • 四、varnish主机配置
  • 五、varnish负载均衡设置
  • 六、varnish推送管理

实验环境:

server5:varnish机(ip:172.25.254.5)
server2:real server机(ip:172.25.254.2)
server3:real server机(ip:172.25.254.3)

server5配置

一、安装varnish相关软件
[[email protected] ~]# yum install -y varnish-libs-3.0.5-1.el6.x86_64.rpm  [[email protected] ~]# yum install -y varnish-3.0.5-1.el6.x86_64.rpm  
二、修改varnish配置文件
vim /etc/sysconfig/varnish  

修改varnish的端口

vim /etc/varnish/default.vcl

backend default {    .host = "172.25.20.2";    .port = "80";  }  
三、修改内核显示,保证流量大时,服务正常运行
[[email protected] ~]# vim /etc/security/limits.conf  

四、varnish主机配置

修改varnish配置文件

backend web1 {   ##访问web1时,指向172.25.20.2    .host = "172.25.254.2";    .port = "80";  }    backend web2 {   ##访问web1时,指向172.25.20.3    .host = "172.25.254.3";    .port = "80";  }    sub vcl_recv {   ##www.westos.org和westos.org指向同一地址,节省varnish空间           ##实质上,域名不同,varnish缓存地址不同  if (req.http.host ~ "^(www.)?westos.org") {  set req.http.host = "www.westos.org";  set req.backend = web1;  } elsif (req.http.host ~ "^bbs.westos.org") {  set req.backend = web2;  } else {error 404 "westos cache";  }  }    sub vcl_deliver {   ##第一次访问时MISS,后续访问HIT,varnish默认清楚时间120s  if (obj.hits > 0) {  set resp.http.X-Cache = "HIT from westos cache";  }  else {  set resp.http.X-Cache = "MISS from westos cache";  }  return (deliver);  }  

测试:
在物理机做域名解析:

172.25.254.5    www.westos.org  bbs.westos.org  westos.org  

五、varnish负载均衡设置

server5

1、修改配置文件

backend web1 {    .host = "172.25.254.2";    .port = "80";  }    backend web2 {    .host = "172.25.254.3";    .port = "80";  }  director lb round-robin {     ##轮询操作  { .backend = web1; }  { .backend = web2; }  }  sub vcl_recv {  if (req.http.host ~ "^(www.)?westos.org") {  set req.http.host = "www.westos.org";  set req.backend = lb;       ##调用轮询  return (pass);  } elsif (req.http.host ~ "^bbs.westos.org") {  set req.backend = web2;      ##直接访问,不参与轮询  } else {error 404 "westos cache";  }  }  

server3开启httpd虚拟主机设置

/etc/httpd/cong/httpd.conf

重新启动server3的httpd服务

测试:

物理机访问:

六、varnish推送管理
目的:当web有更新时,varish的cache实现同步更新  安装httpd,php,unzip  修改httpd端口8080  默认发布目录/var/www/html下解压 bansys.zip  修改varnish配置文件 /etc/varnish/default.vcl  acl westos {  
"127.0.0.1";  "172.25.254.0"/24;   指定 254 网段的可以推送  }    backend web1 {  .host = "172.25.254.2";   指定服务器  .port = "80";  }    backend web2 {  .host = "172.25.254.3";   指定服务器  .port = "80";  }  director lb round-robin {       轮巡  {       .backend = web1;        }  {       .backend = web2;        }  }  sub vcl_recv {    if (req.request == "BAN") {     如果输入错误  则 报错  if (!client.ip ~ westos) {  error 405 "Not allowed.";  }  ban("req.url ~ " + req.url);  error 200 "ban added";  }    if (req.http.host ~ "^(www.)?westos.org") {  set req.http.host = "www.westos.org";  set req.backend = lb;    引用 lb 函数  参加轮训  } elsif (req.http.host ~ "^bbs.westos.org") {  set req.backend = web2;  } else {error 404 "westos cache";  }  }  sub vcl_deliver {  if (obj.hits > 0) {  set resp.http.X-Cache = "HIT from westos cache";  }                 命中缓存  else {  set resp.http.X-Cache = "MISS from westos cache";  }      未命中缓存  return (deliver);  }  

访问 172.25.254.5:8080 即可进行推送
varnishadm ban.url /index.html
清除 index.html 页面缓存
varnishadm ban.url /admin/$
清除 admin 目录缓存

原文出处:csdn -> https://blog.csdn.net/weixin_41789003/article/details/80785257

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。