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文件
注意
  1. keepalived容器的网络模式必须是:network_mode: "host",因为keepalived要获取宿主机中的网卡信息,用以添加虚拟ip
  1. command: --copy-service必须要有,否则osixia/keepalived镜像在使用自定义的keepalived.conf配置时,会报错
  1. privileged: true和cap_drop不能少,要保证容器中的权限。
  1. keepalived容器必须在nginx启动完成后再启动,否则会因为检测脚本的问题,直接停止运行。
 
 
  • GitTalk

© aya 2024-2025