五郎. 发表于 2019-1-1 10:53:04

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
  拓扑图
  00.PNG
  一、两台haproxy配置文件配置
  haproxy1.PNG
  haproxy2.PNG
  启动服务
  ~]# systemctl start haproxy
  ~]# systemctl status haproxy#查看状态
  ~]# ss -tnlp#查看80和9999端口是否启用
  ~]# systemctl enable haproxy #设置开机启动
  二、keepalived的配置
  haproxy1的keepalived配置
  11111.PNG
  haproxy2的keepalived配置
  22222.PNG
  三、两台varnish主机的配置
  更改varnish的监听端口为80
  # vim /etc/varnish/varnish.params
  VARNISH_LISTEN_PORT=80
  varnish配置文件内容
  # vim /etc/varnish/default.vcl
  aaa.PNG
  bbb.PNG
  ccc.PNG
  编译使配置生效
  # 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用于动态健康状态检查
  DynamicServer is Health.
  在静态主机的/var/www/html/下创建health.html用于静态健康状态检查
  StaticServer is Health.
  五、客户端查看
  客户端登陆haproxy的stats page
  登陆.PNG
  关闭一台varnish服务器后,可以在stats page看到一台正常运行,一台关闭了
  登陆2.PNG
  登陆wordpress可以看到之前正常上传图片的博客
  捕获.PNG
  六、总结
  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,没有分离
解决方案:独立数据库服务器,对其设置数据库主从复制,读写分离;


页: [1]
查看完整版本: haproxy varnish