HAProxy(三):Keeplived+HAProxy搭建高可用负载均衡动静分离架构基础配置示例
一、安装环境
1.软件版本
HAProxy:1.5.18
Keepalived:1.3.5
Nginx:1.12.2
PHP:7.2
系统版本:CentOS 7.4
2.IP分配与架构图

3.安装软件
1>关闭所有服务器的firewall与SELinux
~ ]# sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
~ ]# systemctl disable firewalld
~ ]# systemctl stop firewalld
~ ]# reboot
2>在各服务器上安装所需软件,这里都是yum安装,详细安装步骤略过。
4.软件配置
1>HAProxy配置
要实现动静分离需在HAProxy中做ACL规则匹配。具体配置详情如下,两台HAProxy的配置相同:
global
log 127.0.0.1 local2 chroot /var/lib/haproxy
pidfile /var/run/haproxy.pid
maxconn
user haproxy
group haproxy
daemon stats socket /var/lib/haproxy/stats defaults
mode http
log global
option httplog
option dontlognull
option http-server-close
option forwardfor except 127.0.0.0/
option redispatch
retries
timeout http-request 10s
timeout queue 1m
timeout connect 10s
timeout client 1m
timeout server 1m
timeout http-keep-alive 10s
timeout check 10s
maxconn frontend myweb
bind *:
compression algo gzip #选择压缩方式,可优化网页访问速度
compression type text/html text/plain application/x-javascript text/css application/xml #定义要压缩的文件类型
errorloc http://192.168.29.101:9999/errorloc/403.html #错误页位置
rspidel ^Server:.* #删除报头文件中以Server开头的项,安全优化项,因为Server开头的一般是私密信息,如后端服务器的Nginx版本等
acl static path_end .png .jepg .jpg .bmp .html .htm .jsp #ACL规则定义,匹配以.png...结尾的请求并命名为static
use_backend staticsv if static #如果匹配ACL规则static则交由后端服务器组staticsv处理
acl dynamic path_end .php #ACL规则定义,匹配以.php结尾的请求并命名为dynamic
use_backend dynamicsv if dynamic #如果匹配ACL规则dynamic则交由后端服务器组dynamicsv处理
default_backend dynamicsv #默认后端服务器组 backend staticsv
balance roundrobin #调度算法
cookie server insert nocache
server staticsv1 192.168.29.103: check cookie static1
server staticsv2 192.168.29.104: check cookie static2 backend dynamicsv
balance roundrobin
cookie server insert nocache
server dynamicsv1 192.168.29.105: check cookie dynamic1
server dynamicsv2 192.168.29.106: check cookie dynamic2 listen stats #定义状态页
bind *:
acl sta src 192.168.29.1
block if ! sta
http-request allow if sta
stats enable
stats uri /myhaproxy?admin
stats realm "Hello World"
stats auth admin:admin
2>配置Keepalived
在192.168.29.101上的配置如下:
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id n1
vrrp_mcast_group4 224.1.101.18
}
vrrp_script chk_hapx {
script "killall -0 haproxy && exit 0 || exit 1" #这里要指出的是,killall -0 表示检查是否有进程存在,若存在返回值0,若不存在返回1,表示haproxy没有正常工作,并且返回1时往下执行操作。
weight -
interval
fall
rise
}
vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.29.88/ dev ens33 label ens33:
}
track_script {
chk_hapx
}
}
在192.168.29.102上的配置如下(与101的区别已用黄颜色标注):
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout
router_id n1
vrrp_mcast_group4 224.1.101.18
}
vrrp_script chk_hapx {
script "killall -0 haproxy && exit 0 || exit 1"
weight -
interval
fall
rise
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
virtual_ipaddress {
192.168.29.88/ dev ens33 label ens33:
}
track_script {
chk_hapx
}
}
关于keepalived的原理与应用可以阅读这篇博客←点击
5.配置静态服务器组与动态服务器组
在192.168.29.103和192.168.29.104上安装nginx服务
在192.168.29.105和192.168.29.106上安装nginx+php服务
6.配置MariaDB与NFS
配置过程在之前的博客已有详细描述了这里不再赘述:
MariaDB配置点击→这里
NFS配置点击→这里
以上都配置完成后一个简易的基于keepalived+HAProxy的动静分离就部署完成了,然后就能所需的网页资源了。
虽然架构很简单,但能帮助我们理解工作逻辑,和熟悉配置详情。
HAProxy(三):Keeplived+HAProxy搭建高可用负载均衡动静分离架构基础配置示例的更多相关文章
- 【Linux运维-集群技术进阶】Nginx+Keepalived+Tomcat搭建高可用/负载均衡/动静分离的Webserver集群
额.博客名字有点长.. . 前言 最终到这篇文章了,心情是有点激动的. 由于这篇文章会集中曾经博客讲到的全部Nginx功能点.包含主要的负载均衡,还有动静分离技术再加上这篇文章的重点.通过Keepal ...
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)
原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...
- Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)-转帖篇
原文:https://my.oschina.net/xshuai/blog/917097 摘要: Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.ne ...
- Keepalived+HAProxy 搭建高可用负载均衡
转载自:https://mp.weixin.qq.com/s/VebiWftaRa26x1aA21Jqww 1. 概述 软件负载均衡技术是指可以为多个后端服务器节点提供前端IP流量分发调度服务的软件技 ...
- Nginx(haproxy)+keepalived+Tomcat双主高可用负载均衡
周末的时候一个正在学Linux的朋友问我,高可用怎么玩?我和他微信了将近三个小时,把Nginx和haproxy双主高可用教给他了,今天突然想把这个给写进博客里,供给那些正在学习Linux系统的朋友们, ...
- HAProxy+Varnish+LNMP实现高可用负载均衡动静分离集群部署
HAProxy高可用负载均衡集群部署 基本信息: 系统平台:VMware WorkStation 系统版本: CentOS Linux release 7.2.1511 (Core) 内核版本: 3. ...
- Keepalived+lvs 搭建高可用负载均衡
本站点停止更新,请访问:blog.coocap.com 不了解负载均衡高可用的童鞋,强烈建议先看keepalived+nginx高可用负载均衡: 传送门(求粉):http://www.cnblogs. ...
- Linux 笔记 - 第十八章 Linux 集群之(三)Keepalived+LVS 高可用负载均衡集群
一.前言 前两节分别介绍了 Linux 的高可用集群和负载均衡集群,也可以将这两者相结合,即 Keepalived+LVS 组成的高可用负载均衡集群,Keepalived 加入到 LVS 中的原因有以 ...
- LVS+Keepalived高可用负载均衡集群架构实验-01
一.为什么要使用负载均衡技术? 1.系统高可用性 2. 系统可扩展性 3. 负载均衡能力 LVS+keepalived能很好的实现以上的要求,LVS提供负载均衡,keepalived提供健康检查, ...
随机推荐
- C++静态库与动态库(比较透彻)
这次分享的宗旨是——让大家学会创建与使用静态库.动态库,知道静态库与动态库的区别,知道使用的时候如何选择.这里不深入介绍静态库.动态库的底层格式,内存布局等,有兴趣的同学,推荐一本书<程序员的自 ...
- python之高阶函数
1.函数的参数能接收变量 def calc(x): return x*x n = 10 print(calc(n)) #输出为100 2.变量指向函数 def calc(x): return x*x ...
- RDS MySQL InnoDB 锁等待和锁等待超时的处理
https://help.aliyun.com/knowledge_detail/41705.html 1. Innodb 引擎表行锁等待和等待超时发生的场景 2.Innodb 引擎行锁等待情况的处理 ...
- 为opencv添加contrib库
自从进入3.X时代以后,OpenCV将代码库分成了两部分,分别是稳定的核心功能库和试验性质的contrib库,之前已经讲过opencv的核心库的安装,现在讲解一下其附带的依赖库的安装. 一.Cmake ...
- yum-内网yum源服务器配置(CentOS6.5)
一.安装apache服务1.安装httpd服务 yum -y install httpd (纯内网用rpm包安装也可以) 2.启动httpd服务 service httpd start 二.挂载完整的 ...
- 网络编程—端口分类调研和netstat命令
运输层的端口: 1.什么是端口?为甚要使用用端口? 进程的创建和撤销都是动态的,通信的一方几乎无法识别对方机器上的进程,我们需要利用目的主机提供的功能来识别终点. 所以为了解决上述问题,我们就在运输层 ...
- cad2012卸载/安装失败/如何彻底卸载清除干净cad2012注册表和文件的方法
cad2012提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装cad2012失败提示cad2012安装未完成,某些产品无法安装,也有时候想重新安装cad2012 ...
- WebRTC学习之ICE深入理解
ICE(交互式连接建立---Interactive Connectivity Establishment),是一种标准穿透协议.它利用STUN和TURN服务器来帮助端点建立连接.下图显示了ICE的基本 ...
- JavaScript概述-第1章
目录 初始JavaScript 学会使用编辑工具 如何引入脚本代码 常用语句 常见浏览器兼容性问题 了解前端开发技术JavaScript,JavaScript的发展,JavaScript特点,Java ...
- java8 parallel并行处理实战
需求 我需要做一个人员某几项数据的统计,由于数据量较大,不能一次性加载到内存进行统计.所以采用了遍历每个用户.当然也可以分配处理. 分析需求可得知,每个用户其实互不相关,数据的统计可以同步进行,因此考 ...