Varnish

Varnish

server1 cdn  varnish  缓冲服务器数据

Server2 httpd发布首页 服务器

Server3 httpd发布首页 服务器

 

本机 客户端 通过CDN 访问服务器的发布的缓冲

 

第一阶段 用server1设置server2的缓冲

Server 1  varnish-3.0.5-1.el6.x86_64.rpm

varnish-libs-3.0.5-1.el6.x86_64.rpm -y

[root@server1 ~]# yum install -y *

[root@server1 ~]# vim /etc/sysconfig/varnish

 65 # VARNISH_LISTEN_ADDRESS=

 66 VARNISH_LISTEN_PORT=80

修改varnish的端口为80

 

[root@server1 varnish]# vim /etc/security/limits.conf

 52 varnish         -       nofile          131073

 53 varnish         -       memlock         82000

 54 varnish         -       nofile          umlimited

 

[root@server1 ~]# /etc/init.d/varnish start

Starting Varnish Cache:                                    [  OK  ]

重新启动配置文件

产看80端口开启

[root@server1 ~]# netstat -antlp

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      1153/varnishd   

Varnish 80端口开启

 

 

 

 

 

 

 

 

 

[root@server1 ~]# cd /etc/security/

[root@server1 security]# cd /etc/varnish/

[root@server1 varnish]# ls

default.vcl  secret

[root@server1 varnish]# vim default.vcl

backend default

.host = “172.25.77.2”;

.port = “80”;

}

 

[root@server1 varnish]# /etc/init.d/varnish reload

Current running config name is boot

Using new config name reload_2018-07-27T14:48:37

VCL compiled.

 

available       0 boot

active          0 reload_2018-07-27T14:48:37

 

Done

 

[root@server2 html]#pwd

/var/www/html

[root@server2 html] yum install httpd -y

[root@server2 html] /etc/init.d/httpd start

[root@server2 html]cat index.html

www.westos.org

[root@server2 html] /etc/init.d/httpd restart

 

 

 

 

客户端 77号

[root@foundation77 images]# vim /etc/hosts

 5 172.25.77.1  www.westos.org bbs.westos.org

[root@foundation77 images]#curl -I www.westos.org

[root@foundation77 images]#curl -I www.westos.org/index.html -I

 

工作流程

Client > dns > cdn > server >cdn >cache > client

客户端发送请求到nds访问域名 cdn向服务器server取得缓冲cache  取得的缓冲发送到client客户端

 

Server1   命中缓冲 HIT from westos cache

[root@server1 varnish]# vim /etc/varnish/default.vcl

 

27 sub vcl_deliver {

 28 if (obj.hits > 0) {

 29 set resp.http.X-Cache = "HIT from westos cache";

 30 }

 31 else {

 32 set resp.http.X-Cache = "MISS from westos cache";

 33 }

 34 return (deliver);

 35 }

客户端 77号

[root@foundation77 images]#curl -I www.westos.org

X-Cache:HIT from westos cache

 

 

 

 

 

 

 

第二阶段 设置server3的缓冲 从cdn跳转web1 web2

清空自己的缓冲

Server1

[root@server1 ~]# varnishadm ban.url /index.html

[root@server1 ~]# varnishadm ban.url .*$

客户端

[root@foundation77 ~]#curl -I www.westos.org/index.html -I

Age=0 缓冲过期时间  清空变成0

有缓冲会时间 降低服务器的压力

 

Server3

[root@server3 ~]#yum install httpd -y

[root@server3 ~]#/etc/init.d/httpd start

[root@server3 ~]#cd /var/www/html

[root@server3 html]#cat index.html

 bbs.westos.org

[root@server3 ~]#/etc/init.d/httpd restart

 

Server1

[root@server1 ~]# cd /etc/varnish/

[root@server1 varnish]# vim /etc/varnish/default.vcl

[root@server1 varnish]# /etc/init.d/varnish restart

  7 backend web1 {

  8   .host = "172.25.77.2";

  9   .port = "80";

 10 }

 11

 12  backend web2 {

 13    .host = "172.25.77.3";

 14    .port = "80";

 15 }

 16

 17 sub vcl_recv {

 18 if (req.http.host ~ "^(www.)?westos.org") {

 19 set req.http.host = "www.westos.org";

 20 set req.backend = web1;

 21 }elsif (req.http.host ~ "^bbs.westos.org") {

 22 set req.backend = web2;

 23 } else {error 404 "westos cache";

 24 }

 25 }

 26

 27 sub vcl_deliver {

 28 if (obj.hits > 0) {

 29 set resp.http.X-Cache = "HIT from westos cache";

 30 }

 31 else {

 32 set resp.http.X-Cache = "MISS from westos cache";

 33 }

 34 return (deliver);

 35 }

#sub vcl_recv :页面跳转www.westos.org跳转

bbs.westos.org   

backend :后端 web1 web2

 

[root@server1 varnish]# /etc/init.d/varnish reload

Loading vcl from /etc/varnish/default.vcl

Current running config name is reload_2018-07-27T16:05:43

Using new config name reload_2018-07-27T16:07:24

VCL compiled.

 

available       0 boot

available       0 reload_2018-07-27T14:48:37

available       0 reload_2018-07-27T15:06:55

available       0 reload_2018-07-27T15:59:16

available       0 reload_2018-07-27T16:00:11

available       0 reload_2018-07-27T16:03:46

available       2 reload_2018-07-27T16:05:43

active          0 reload_2018-07-27T16:07:24

 

Done

 

客户端

[root@foundation77 ~]#curl -I www.westos.org/index.html

 

[root@foundation77 ~]#curl -I bbs.westos.org/index.html

 

 

故障排查

客户端

[root@foundation77 ~]#curl -I www.westos.org/index.html

X-Cache : MISS from westos cache 没有命中缓冲

重新启动server2

[root@server2 html]cat index.html

www.westos.org

[root@server2 html] /etc/init.d/httpd restart

 

 

 

 

 

 

 

第三阶段 高可用 server2 server3 发布页面均衡负载

 

Server3

 

[root@server3 html]# vim index.html

www.westos.org - server 3

[root@server3 html]# vim /etc/http/conf/httpd.conf

nameVirtualHost *80

在后面

<VirtualHost *:80>

DocumentRoot /var/www/html

ServerName www.westos.org

<VirtualHost>

<VirtualHost *:80>

DocumentRoot/www/docs/dummy-host.example.com

ServerName dummy-host.example.com

<VirtualHost>

[root@server3 html]# /etc/init.d/httpd restart

 

 

 

 

Server1

[root@server1 varnish]# vim default.vcl

17 director westos round-robin {

 18 { .backend = web1; }

 19 { .backend = web2; }

 20 }

23

 24 sub vcl_recv {

 25 if (req.http.host ~ "^(www.)?westos.org") {

 26 set req.http.host = "www.westos.org";

 27 set req.backend = westos;

 28 return (pass);

 29 }elsif (req.http.host ~ "^bbs.westos.org") {

 30 set req.backend = web2;

 31 } else {error 404 "westos cache";

 32 }

 33 }

 

[root@server1 varnish]# /etc/init.d/varnish restart

 

 

 

 

[root@server1 varnish]# /etc/init.d/varnish reload

Loading vcl from /etc/varnish/default.vcl

Current running config name is reload_2018-07-27T17:03:36

Using new config name reload_2018-07-27T17:08:23

VCL compiled.

 

available       0 boot

available       0 reload_2018-07-27T14:48:37

available       0 reload_2018-07-27T15:06:55

available       0 reload_2018-07-27T15:59:16

available       0 reload_2018-07-27T16:00:11

available       0 reload_2018-07-27T16:03:46

available       0 reload_2018-07-27T16:05:43

available       0 reload_2018-07-27T16:07:24

available       0 reload_2018-07-27T16:30:35

available       0 reload_2018-07-27T16:30:40

available       0 reload_2018-07-27T17:03:31

available       2 reload_2018-07-27T17:03:36

active          0 reload_2018-07-27T17:08:23

 

Done

 

 

 [root@server3 html]# cat index.html

www.westos.org - server3

[root@server3 html]#/etc/init.d/httpd restart

 

 [root@server2 html]# cat index.html

www.westos.org - server2

[root@server3 html]#/etc/init.d/httpd restart

客户端client 负载均衡 www.westos.org

[root@foundation77 images]#curl www.westos.org

www.westos.org - server3

[root@foundation77 images]#curl www.westos.org

www.westos.org - server2

 

 

故障排除

[root@foundation77 images]#curl www.westot.org

<h1>Error 503 service Unavaiable</h1>

Server2 httpd 关闭 重新启动服务

[root@server2 html]# cat index.html

www.westos.org - server2

[root@server2 html]#/etc/init.d/httpd restart

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值