haproxy反代+varnish缓存+后端LAMP平台集群实现
2017-12-15 18:04
253 查看
haproxy服务器: 第一台haproxy本机IP: eno16777736:192.168.72.2 eno33554976:172.16.25.1 第二台haproxy本机IP: eno16777736:192.168.72.3 eno33554976:172.16.25.2 keepalived高可用虚拟IP: eno16777736:192.168.72.20 eno33554976:172.16.25.100 keepalived配置:
keepalived的配置项在这里就不再讲述了,前面都有讲过。主要就是对nginx的状态进行一个判断 若nginx down掉了,则将权重值-10,MASTER降为BACKUP(抢占模式)。当MASTER中的nginx 启动后,又会自动成为MASTER,虚拟IP就由MASTER掌控。
haproxy反代配置: 172.16.25.77为后端varnish的IP 设置fontend接受所有80端口信息; 直接转发到关于后端的varnish的backend var1,由varnish进行动静分离; 设置haproxy stats,stats enable开启stats,并设置访问的uri,设置用户名,密码,避免其他用户访问; backend var1算法设置为一致性hash,基于uri的。并转发到varnish主机,若varnish有多台,直接增加server即可。
varnish服务器: IP:172.16.25.77 yum install -y varnish 配置文件/etc/varnish/varnish.param:运行时参数的配置,如varnish线程池得多少,每个线程池的线程数目有多少等。 配置文件/etc/varnish/default.vcl进行编辑:varnish运行的策略库,根据该策略库判断数据是否缓存等。 前端nginx反代到后端时采用的是80端口,所以需要将varnish监听在80端口这样才能正确获取到前端请求。 修改/etc/varnish/varnish.param 将VARNISH_LISTEN_PORT修改为80端口,原来为6081,该端口为服务端口,6082为管理端口
/etc/varnish/default.vcl配置: 设置反代到后端的两个主机,可以进行健康状态监测,如 probe = { url = /health.html timeout = 3s interval = 2s window = 5 threahold = 3 (5次检测有三次成功则表示后端RS正常) }
vcl_purge为缓存裁剪,对不需要的缓存进行删除,常用于缓存更新。 vcl_recv为所有请求数据都必须经过的一个状态引擎的表示,在这里对数据进行静态分离, 当请求的方法为dele,则表示对该资源进行裁剪,当请求的资源存在.php则表示该资源为 动态资源,发往动态资源服务器web2,否则发往静态资源服务器web1.在这里可以对资 源服务器进行扩展,若动静态资源服务器有多台,则可以设置vcl_init 如 vcl_init { new websrv = directors.backend_roundrobin(); websrv.add_backend(webstat1); websrv.add_backend(webstat2); } 将两台静态服务器 都添加至websrv中,类似于nginx中的upstream 调用时使用set req.backend_hint = websrv.backend();即可。 注意:在使用组调度方式时,需要在配置文件顶部添加
启动varnish服务 systemctl start varnish.service 使用varnishadm加载default.vcl文件
后端RS的LAMP配置在这里就不多说了; 运行结果: 访问/myhaproxy
访问静态资源
访问动态资源
访问phpMyAdmin
keepalived的配置项在这里就不再讲述了,前面都有讲过。主要就是对nginx的状态进行一个判断 若nginx down掉了,则将权重值-10,MASTER降为BACKUP(抢占模式)。当MASTER中的nginx 启动后,又会自动成为MASTER,虚拟IP就由MASTER掌控。
haproxy反代配置: 172.16.25.77为后端varnish的IP 设置fontend接受所有80端口信息; 直接转发到关于后端的varnish的backend var1,由varnish进行动静分离; 设置haproxy stats,stats enable开启stats,并设置访问的uri,设置用户名,密码,避免其他用户访问; backend var1算法设置为一致性hash,基于uri的。并转发到varnish主机,若varnish有多台,直接增加server即可。
varnish服务器: IP:172.16.25.77 yum install -y varnish 配置文件/etc/varnish/varnish.param:运行时参数的配置,如varnish线程池得多少,每个线程池的线程数目有多少等。 配置文件/etc/varnish/default.vcl进行编辑:varnish运行的策略库,根据该策略库判断数据是否缓存等。 前端nginx反代到后端时采用的是80端口,所以需要将varnish监听在80端口这样才能正确获取到前端请求。 修改/etc/varnish/varnish.param 将VARNISH_LISTEN_PORT修改为80端口,原来为6081,该端口为服务端口,6082为管理端口
/etc/varnish/default.vcl配置: 设置反代到后端的两个主机,可以进行健康状态监测,如 probe = { url = /health.html timeout = 3s interval = 2s window = 5 threahold = 3 (5次检测有三次成功则表示后端RS正常) }
vcl_purge为缓存裁剪,对不需要的缓存进行删除,常用于缓存更新。 vcl_recv为所有请求数据都必须经过的一个状态引擎的表示,在这里对数据进行静态分离, 当请求的方法为dele,则表示对该资源进行裁剪,当请求的资源存在.php则表示该资源为 动态资源,发往动态资源服务器web2,否则发往静态资源服务器web1.在这里可以对资 源服务器进行扩展,若动静态资源服务器有多台,则可以设置vcl_init 如 vcl_init { new websrv = directors.backend_roundrobin(); websrv.add_backend(webstat1); websrv.add_backend(webstat2); } 将两台静态服务器 都添加至websrv中,类似于nginx中的upstream 调用时使用set req.backend_hint = websrv.backend();即可。 注意:在使用组调度方式时,需要在配置文件顶部添加
启动varnish服务 systemctl start varnish.service 使用varnishadm加载default.vcl文件
后端RS的LAMP配置在这里就不多说了; 运行结果: 访问/myhaproxy
访问静态资源
访问动态资源
访问phpMyAdmin
相关文章推荐
- nginx反代+varnish缓存+后端LAMP平台集群实现
- 基于ansible role实现LAMP平台批量部署 - 推酷
- LAMP平台源码编译的实现
- 基于Centos 6.5 配置分离式LAMP平台环境的一次扩展实现多PHP Apache和自建DNS来提升LAMP的负载
- 企业集群平台架构设计与实现
- CentOS7 平台 源码编译安装Heartbeat,并实现nginx的HA集群
- 漫漫运维路——使用NFS构建出共享存储的LAMP平台,实现Wordpress论坛的数据同步 推荐
- LAMP平台实现之PHP加速,xcache
- LAMP(linux下apache+mysql+php)平台编译安装的实现
- 构建LAMP平台利用虚拟主机实现提供discuz论坛、基于SSL安装phpMyAdmin、安装wordpress
- 企业集群平台LVS负载均衡算法分析与实现
- 企业集群平台架构实现与应用实战(HAproxy+keepalived篇) 推荐
- 实现源码编译LAMP平台的搭建
- LAMP平台基于NFS实现web服务器负载均衡
- 基于LAMP平台利用NFS远程共享资源实现站点构建
- 数据库工作于独立主机的lamp平台安装实现
- 源代码实现LAMP的平台搭建
- 源码安装实现lamp平台
- 我的毕业论文——基于linux集群技术的校园网络服务平台的设计与实现
- 基于ansible role实现LAMP平台批量部署 推荐