首页 > 系统相关 >nginx+keepealived 部署高可用

nginx+keepealived 部署高可用

时间:2024-06-30 22:44:30浏览次数:20  
标签:opt keepealived etc 部署 keepalived nginx conf docker

nginx用docker部署

1、安装docker
2、拉取nginx镜像:docker pull nginx
3、启动nginx:docker run -d -p 80:80 --name nginx nginx:latest
4、新建相关目录和文件夹(用来挂载容器内的文件):
    ·mkdir -p /opt/nginx/{logs,conf,conf.d}
    ·touch /opt/nginx/logs/{access.log,error.log}
5、拷贝容器内的配置文件到本机:
    ·docker cp nginx:/etc/nginx/nginx.conf /opt/nginx/conf
    ·docker cp nginx:/etc/nginx/conf.d/default.conf /opt/nginx/conf.d
    ·docker cp nginx:/usr/local/nginx/html /opt/nginx/
6、删除容器:
    ·docker rm -f nginx
7、启动容器并挂载文件:
docker run -d --name nginx -p 80:80 \
-v /opt/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /opt/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf \
-v /opt/nginx/html:/usr/share/nginx/html \
-v /opt/nginx/logs:/var/log/nginx \
nginx:latest

8、测式、配置负载均衡即可

 

安装配置keepalived

1、下载包到opt目录下:wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz
2、解压:tar -xf keepalived-2.0.20.tar.gz
3、安装依赖:
    ·yum install -y gcc openssl-devel popt-devel
4、到解压后的目录下:
    ·cd /opt/keepalived-2.0.20
5、编译安装
    ·创建目录:mkdir /usr/local/keepalived
    ·./configure --prefix=/usr/local/keepalived        #指定安装路径
    ·make && make install
    
6、拷贝文件到相应的目录下:
    ·cp /opt/keepalived-2.0.20/keepalived/etc/init.d/keepalived /etc/init.d/            #拷贝安装包下的文件
    · mkdir /etc/keepalived    #创建目录
    ·cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/            #拷贝安装目录下的文件
    ·cp /opt/keepalived-2.0.20/keepalived/etc/sysconfig/keepalived /etc/sysconfig/        #拷贝安装包下的文件
    ·cp /usr/local/keepalived/sbin/keepalived /usr/sbin/                                    #拷贝安装目录下的文件
    
7、配置keepalived配置文件:
    ·vim /etc/keepalived/keepalived.conf
------------------------------------------------------
! Configuration File for keepalived

global_defs {
        #keepalived机器标识,无特殊作用,一般为机器名
        router_id  LVS_DEVEL
}

# 检查nginx状态的脚本,健康监测脚本、chk_nginx为脚本名
vrrp_script chk_nginx {
        script "/etc/keepalived/nginx_check.sh" # 脚本路径
        interval 2 # 脚本执行间隔时间
        weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33  # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
    virtual_router_id 100  # 虚拟路由编号,主从要一至
    priority 100 # 优先级,数值越大,获取处理请求的优先级越高 master要大于slave
    advert_int 1   ##主备之间通信检查的时间间隔,单位秒
    unicast_src_ip 192.168.177.197 # 本机ip


    #检查脚本,与vrrp_script对应
    track_script {
        chk_nginx
    }

    ##keepalived之间认证类型为密码
    authentication {
        auth_type PASS  # 指定认证方式。PASS简单密码认证(推荐),AH:IPSEC认证(不推荐)
        auth_pass 1111  # 指定认证所使用的密码。最多8位
    }

     ##虚拟IP池
     virtual_ipaddress {  
        # 指定VIP地址、访问地址、虚拟ip随意定义
        172.33.1.12/24
    }

}
-----------------------------------------------------------------------------------------------
    
    
8、编写脚本:
    ·vim /etc/keepalived/nginx_check.sh        #脚本路径和名称要和上面keepalived.conf配置文件里的要一致
--------------------------------------------------------
#!/bin/bash
#version 0.0.1
#当nginx进程不存在时,会自动重启nginx服务;
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then
     docker restart nginx     #重启nginx
     sleep 2
     if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
        systemctl stop keepalived
     fi
fi
-------------------------------------------------------------
9、给脚本授权:chmod 777 nginx_check.sh


注:以上操作主备一致、需要修改的是keepalived.conf配置文件里的本机ip、state、priority即可

 

测式:

1、先使用虚拟ip(VIP)访问网页:192.168.177.15  或curl 192.168.177.15    #注意这里负载均衡nginx设置的端口为80

#如果虚拟机可以访问,而本地浏览器不能访问,检查一下本地与虚拟ip的通讯

 

2、测式停掉nginx、看脚本会不会自动重启nginx

 

3、测式停掉主机:keepalived.service服务、看备机上 ip a  网卡 'inet 192.168.177.15/24'  是否转移到备机、网页是否能继续访问

标签:opt,keepealived,etc,部署,keepalived,nginx,conf,docker
From: https://www.cnblogs.com/littlecc/p/17762083.html

相关文章

  • 如何在Windows11下部署Linux子系统中安装GCC编译器
    GCC编译器安装:1:gcc出现命令找不到2.直接按照提示来安装。会发现链接找不到服务器原因是因为默认的服务器在国外,无法直接进行访问,需要切换成国内的服务器3.切换软件源——换成国内的服务器注意:软件源要与版本号一致!演示所用均为22.04版本号,可根据版本号找对应的软件......
  • (幼儿向)如何在本地部署大模型
    首先给有一台可以联网的电脑,配置高有配置高的玩法配置低有配置低的玩法,本帖就来阐述一下穷哥们的玩法打开浏览器搜索ollama(网址)ollama.com,下载他 (建议魔法上网,这样会更快些)下载完之后,根据电脑配置选择适合自己的大模型建议配置低的都选7b以下的模型。具体搜索下载大模型......
  • 基于Java+SSM+Vue的医院住院管理系统设计与实现(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • 自动化部署ansible
    ANSIBLE自动化部署安装ANSIBLE########yum源安装###############[[email protected]]#vimCentOS-Base.repo#加入epel源[epel]name=gnbaseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64https://mirrors.cloud.tencent.com/epel/$releasever/x86_6......
  • nginx使用
    Nginx概述Nginx功能介绍静态的web资源服务器html,图片,js,css,txt等静态资源http/https协议的反向代理,7层url结合FastCGI/uWSGI/SCGI等协议反向代理动态资源请求tcp/udp协议的请求转发(反向代理)4层基础特性模块化设计,较好的扩展性高可靠性支持热部署:不停......
  • 图解 Jenkins Pipeline 的前端自动化部署,用上后真香!
    图解JenkinsPipeline的前端自动化部署,用上后真香!原创 悟空聊架构 悟空聊架构 2024-06-2720:57 广东 听全文你好,我是悟空。本文目录如下:一、Jenkins前端部署思路1.1整体架构图1.2部署步骤二、Pipeline和自由风格对比三、Pipeline核心脚本......
  • Linux系统之部署linkding书签管理器
    Linux系统之部署linkding书签管理器一、linkding介绍1.1linkding简介1.2linkding特点二、本地环境介绍2.1本地环境规划2.2本次实践介绍三、检查本地环境3.1检查本地操作系统版本3.2检查系统内核版本四、部署Node.js环境4.1下载Node.js......
  • [本科项目实训] Hugging Face Transformers 模型部署与微调
    TransformersHuggingFaceTransformer提供了模型的加载、推理、微调接口,使用该库可以轻松完成自然语言模型的部署微调工作,其有继承自AutoClass的四个最为常见的接口,且调用方式均为AutoClass.from_pretrain("model_name"):AutoTokenizer:用于文本分词AutoFeatureExtractor:用......
  • debian11 hexo+nginx 配置https
    环境准备站点服务器:Debian11个人PC:Vscode,nodejs,git,xshell远程工具这里的站点服务器可以是云服务器,也可以实体机子,我这里使用家里的NAS-unraid开了一台Debian11虚拟机,虚拟机用任意linux发行最新版本均可。因为某些原因需要去熟悉Debian,发现在Debian系统上编辑文档......
  • Anolis8.6 hexo+nginx 配置https
    编辑时间2023/03/0123:25环境准备站点服务器:Anolis8.6个人PC:Vscode,nodejs,git,xshell远程工具搭建开始家里除了点情况,电闸跳了,由于没ups,nas直接异常掉电,好在数据校验发现没问题,但是debian那台虚机出毛病了nas上我开了两台虚机,另一台gitlab服务器重启后一点问题......