高可用haproxy调度varnish服务器缓存后端动静分离集群架构

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高可用haproxy调度varnish服务器缓存后端动静分离集群架构相关的知识,希望对你有一定的参考价值。

(1) 动静分离部署wordpress,动静都要能实现负载均衡,要注意会话的问题;

(2) 在haproxy和后端主机之间添加varnish进行缓存;

(3) 给出设计拓扑,写成博客;

(4) haproxy的设定要求:

(a) stats page,要求仅能通过本地访问使用管理接口; 

(b) 动静分离;

(c) 分别考虑不同的服务器组的调度算法;

(5) haproxy高可用;


实验规划:

利用keepalived主备高可用两个haproxy服务器

对varnish缓存服务器做高可用

动态web集群

静态web集群


haproxy1:     172.16.1.4

haproxy2:     172.16.1.2

varnish1:     172.16.1.5 

varnish2:     172.16.1.6

dynamic server1:172.16.1.3

dynamic server2:172.16.1.7

static server1: 172.16.1.10

static server2: 172.16.1.8


拓扑图

技术分享图片


一、两台haproxy配置文件配置

技术分享图片

技术分享图片

启动服务

~]# systemctl start haproxy 

~]# systemctl status haproxy  #查看状态

~]# ss -tnlp  #查看80和9999端口是否启用

~]# systemctl enable haproxy #设置开机启动


二、keepalived的配置


haproxy1的keepalived配置

技术分享图片

haproxy2的keepalived配置

技术分享图片


三、两台varnish主机的配置


更改varnish的监听端口为80

[[email protected] ~]# vim /etc/varnish/varnish.params

VARNISH_LISTEN_PORT=80


varnish配置文件内容

[[email protected] ~]# vim /etc/varnish/default.vcl 

技术分享图片

技术分享图片

技术分享图片


编译使配置生效


[[email protected] ~]# varnishadm -S /etc/varnish/secret -T 127.0.0.1:6082

200        

-----------------------------

Varnish Cache CLI 1.0

-----------------------------

Linux,3.10.0-327.el7.x86_64,x86_64,-smalloc,-smalloc,-hcritbit

varnish-4.0.5 revision 07eff4c29


Type 'help' for command list.

Type 'quit' to close CLI session.


vcl.list

200        

available       0 boot

active          0 myconf3


varnish> vcl.load conf1 default.vcl

200        

VCL compiled.


vcl.use conf1

200        

VCL 'conf1' now active


vcl.list

200        

available       0 boot

available       0 myconf3

active          0 conf1


四、后端动静服务器wordpress主机配置


后端amp配置不做赘述



在动态主机的/var/www/html/下创建health.php用于动态健康状态检查

<h1>DynamicServer is Health.</h1>



在静态主机的/var/www/html/下创建health.html用于静态健康状态检查

<h1>StaticServer is Health.</h1>



五、客户端查看


客户端登陆haproxy的stats page

技术分享图片

关闭一台varnish服务器后,可以在stats page看到一台正常运行,一台关闭了

技术分享图片


登陆wordpress可以看到之前正常上传图片的博客

技术分享图片



六、总结


1、架构优点:

    (1)HAProxy为Varnish缓存服务器提供了高可用的负载均衡,其使用的算法,也为Varnish提升了缓存命中率;

    (2)HAProxy提供Web图形化管理界面,节约了学习成本;

    (3)Varnish的高效缓存机制极大的提升了Web应用的性能,降低了Web服务器的压力;

    (4)Varnish给后端Web服务器提供了高可用负载均衡,并使用了动态分离技术,保障了后端主机的冗余,显著提升了其性能;

    (5)使用Keepalive对HAproxy做高可用解决了单点故障问题。


2、不足之处:

    (1)该架构没有解决存储的问题。

    解决方案:可以使用NFS+Rsync+inodify实现数据实时同步,再用keepalive做高可用。

    (2)mysqlServer,没有分离

    解决方案:独立数据库服务器,对其设置数据库主从复制,读写分离;

以上是关于高可用haproxy调度varnish服务器缓存后端动静分离集群架构的主要内容,如果未能解决你的问题,请参考以下文章

基于haproxy+keepalive+varnish实现lnmp企业级架构

高可用haproxy调度后端服务器实现动静分离集群架构

keepalived高可用haproxy+varnish+lnmp实现站点搭建与ansible实现

HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署

HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署

基于HAProxy+Varnish实现动静分离负载均衡的高可用集群