Nginx高可用部署
type
status
date
slug
summary
tags
category
icon
password
1.keepalived实现nginx高可用部署
keepalived是一个基于VRRP协议的高可用解决方案软件(详情请自行查看官网)。
前言
采用docker、docker-compose实现nginx + keepalived的高可用部署方案。
部署
关于keepalived的docker镜像,可以自己构建也可以使用他人构建好的,这里采用
osixia/keepalived 。这里默认nginx镜像存在且相关配置已经完成,只说明keepalived的部署。
自定义keepalived配置
自定义Nginx服务检测脚本
注意:keepalived严格上是监听服务器是否正常(服务器down掉,keepalived进程也会down掉),只有当本机的keepalived进程挂掉,vip才会转移到备用结点。所以想让keepalived监听指定服务,必须自定义脚本,当被监听服务挂了,主动kill掉keepalived进程实现vip的转移。
编写docker-compose文件
注意:
- keepalived容器的网络模式必须是:network_mode: "host",因为keepalived要获取宿主机中的网卡信息,用以添加虚拟ip
- command: --copy-service必须要有,否则osixia/keepalived镜像在使用自定义的keepalived.conf配置时,会报错
- privileged: true和cap_drop不能少,要保证容器中的权限。
- keepalived容器必须在nginx启动完成后再启动,否则会因为检测脚本的问题,直接停止运行。
- GitTalk