nginx安装配置

1、通过docker-compose安装nginx,1.19的镜像支持stream模块,用来实现四层协议的转发、代理或者负载均衡,这边用来转发到k8s的nginx-ingress。

docker-compose.yaml

version: '3'
services:redis:image: "nginx:1.19"hostname: nginxcontainer_name: nginxports:- 80:80- 443:443volumes:- ./etc/nginx/nginx.conf:/etc/nginx/nginx.confenvironment:- TZ=Asia/Shanghairestart: always

nginx.conf

error_log stderr notice;worker_processes 2;
worker_rlimit_nofile 130048;
worker_shutdown_timeout 10s;events {multi_accept on;use epoll;worker_connections 16384;
}stream {upstream nginx_ingress {least_conn;server 172.21.74.5:80 max_fails=3 fail_timeout=5s;server 172.21.74.6:80 max_fails=3 fail_timeout=5s;server 172.21.74.7:89 max_fails=3 fail_timeout=5s;}upstream nginx_ingress_ssl {least_conn;server 172.21.74.5:443 max_fails=3 fail_timeout=5s;server 172.21.74.6:443 max_fails=3 fail_timeout=5s;server 172.21.74.7:443 max_fails=3 fail_timeout=5s;}upstream k8s {least_conn;server 172.21.74.2:6443 max_fails=3 fail_timeout=5s;server 172.21.74.3:6443 max_fails=3 fail_timeout=5s;server 172.21.74.4:6443 max_fails=3 fail_timeout=5s;}server {listen        80;proxy_pass    nginx_ingress;proxy_timeout 10m;proxy_connect_timeout 1s;}server {listen        443;proxy_pass    nginx_ingress_ssl;proxy_timeout 10m;proxy_connect_timeout 1s;}server {listen        6443;proxy_pass    k8s;proxy_timeout 10m;proxy_connect_timeout 1s;}
}http {aio threads;aio_write on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 5m;keepalive_requests 100;reset_timedout_connection on;server_tokens off;autoindex off;server {listen 18081;location /healthz {access_log off;return 200;}location /stub_status {stub_status on;access_log off;}}
}

安装keepalived
1、直接通过yum安装

yum -y install keepalived

2、配置

master

cat <<EOF > /etc/keepalived/keepalived.conf
#检测脚本
vrrp_script chk_http_port {
    script "/data/services/nginx/nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state MASTER            # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface ens160         # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
    virtual_router_id 66    # 虚拟路由编号,主从要一直
    priority 100            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 123456
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        172.21.74.20            # 定义虚拟ip(VIP),可多设,每行一个
    }
}
EOF

backup

cat <<EOF > /etc/keepalived/keepalived.conf
#检测脚本
vrrp_script chk_http_port {
    script "/data/services/nginx/nginx.sh" #心跳执行的脚本,检测nginx是否启动
    interval 2                          #(检测脚本执行的间隔,单位是秒)
    weight 2                            #权重
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state BACKUP            # 指定keepalived的角色,MASTER为主,BACKUP为备
    interface ens160         # 当前进行vrrp通讯的网络接口卡(当前centos的网卡) 用ifconfig查看你具体的网卡
    virtual_router_id 66    # 虚拟路由编号,主从要一致
    priority 99            # 优先级,数值越大,获取处理请求的优先级越高
    advert_int 1            # 检查间隔,默认为1s(vrrp组播周期秒数)
    #授权访问
    authentication {
        auth_type PASS #设置验证类型和密码,MASTER和BACKUP必须使用相同的密码才能正常通信
        auth_pass 123456
    }
    track_script {
        chk_http_port            #(调用检测脚本)
    }
    virtual_ipaddress {
        172.21.74.20            # 定义虚拟ip(VIP),可多设,每行一个
    }
}
EOF
3、nginx检测脚本

nginx.sh

#!/bin/bash
#检测nginx是否启动了
A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ];then    #如果nginx没有启动就启动nginxdocker start nginx                #重启nginxif [ `ps -C nginx --no-header |wc -l` -eq 0 ];then    #nginx重启失败,则停掉keepalived服务,进行VIP转移killall keepalivedfi
fi

4、启动

systemctl start keepalived.service 
systemctl enable keepalived.service

nginx+Keeplive高可用集群部署相关推荐

  1. Nginx+Keepalived高可用集群应用实践

    Nginx+Keepalived高可用集群应用实践 1.Keepalived高可用软件 1.1 Keepalived服务的三个重要功能 1.1.1管理LVS负载均衡软件 早期的LVS软件,需要通过命令 ...

  2. Mysql数据库(十一)——MHA高可用集群部署及故障切换

    Mysql数据库(十一)--MHA高可用集群部署及故障切换 一.MHA概述 二.MHA的组成 三.MHA的特点 四.案例环境 1.服务器配置 2.思路 3.关闭防火墙和安全机制,并进行主从配置 4.配 ...

  3. Hadoop部署方式-高可用集群部署(High Availability)

    Hadoop部署方式-高可用集群部署(High Availability) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客的高可用集群是建立在完全分布式基础之上的,详情请参 ...

  4. Java架构师成长直通车:LVS+Nginx实现高可用集群

    LVS+Nginx实现高可用集群 常见服务器 安装 Nginx(CentOS) Nginx 的进程模型 Nginx 事件处理 nginx.conf 核心配置文件 Nginx 的跨域配置和防盗链 负载均 ...

  5. LVS+Nginx实现高可用集群

    LVS+Nginx实现高可用集群 常见服务器 [安装 Nginx(CentOS)](#安装 Nginx(CentOS)) [Nginx 的进程模型](#Nginx 的进程模型) [Nginx 事件处理 ...

  6. nginx keepalived高可用集群主从模式

    hostname ip 说明 proxy-01 172.0.5.108 keepalived主节点nginx主负载均衡 proxy-02 172.0.5.39 keepalived备节点nginx辅负 ...

  7. 数据库系列之SequoiaDB高可用集群部署(二)

    SequoiaDB作为存储引擎,支持高并发的HTAP场景.本位总结运维分析项目中使用SequoiaDB作为数据存储的高可用部署实战,并接入Kafka进行高并发的更新业务和Spark进行高并发的批量查询 ...

  8. 数据库系列之SequoiaDB高可用集群部署(一)

    SequoiaDB作为存储引擎,支持高并发的HTAP场景.本位总结运维分析项目中使用SequoiaDB作为数据存储的高可用部署实战,并接入Kafka进行高并发的更新业务和Spark进行高并发的批量查询 ...

  9. Kubernetes容器集群 - harbor仓库高可用集群部署说明

    之前介绍Harbor私有仓库的安装和使用,这里重点说下Harbor高可用集群方案的部署,目前主要有两种主流的Harbor高可用集群方案:1)双主复制:2)多harbor实例共享后端存储. 一.Harb ...

  10. K8S 学习笔记三 核心技术 Helm nfs prometheus grafana 高可用集群部署 容器部署流程

    K8S 学习笔记三 核心技术 2.13 Helm 2.13.1 Helm 引入 2.13.2 使用 Helm 可以解决哪些问题 2.13.3 Helm 概述 2.13.4 Helm 的 3 个重要概念 ...

最新文章

  1. 高糊视频秒变4K,速度快了9倍!东南大学提出新的视频超分辨率系统
  2. 场地测量的方法和程序_建筑施工测量的内容与方法
  3. python语言能干什么-学Python语言可以做什么?
  4. deepin关机卡在图标界面 mysql Community...10min
  5. 为什么Domain controller上的time synchronization非常重要?
  6. Oracle 数据库导入导出
  7. Flink 1.8.0编译:flink-fs-hadoop-shaded找不到
  8. oracle 导入单表,oracle 10g 中单个数据表的导入、导出
  9. 小白菜飘过计算机三级数据库
  10. 计算机组成原理bzc指令,计算机组成原理课程设计-09级.ppt
  11. 浅谈一下workstation
  12. erp系统服务器电脑配置,erp软件服务器电脑配置
  13. oracle里xdb用户,修改Oracle XDB默认监听端口
  14. matlab计算四元方程解,求解四元二次方程,用matlab
  15. Yii2 常用操作总结
  16. 图像放大的三种处理方法:最近邻插值,双线性插值 ,双三次插值算法
  17. 想要制作好看的壁纸,有CorelDRAW就够啦
  18. 【时序异常检测翻译】1.DeepAnT: A Deep Learning Approach for Unsupervised Anomaly Detection in Time Series
  19. 剖析环境加密与文档加密
  20. TabLayout+ViewPager+Fragment实现切页展示

热门文章

  1. word文档太大怎么压缩到最小?
  2. Python通过SSH下载远程服务器文件
  3. 基于斗鱼的娱乐直播视频平台--Vue移动端页面
  4. 2021年中国研究生数学建模竞赛D题——抗乳腺癌候选药物的优化建模
  5. Qt实现窗口跳转(类似于看图软件中下一张和上一张)
  6. lept_json的学习之stringify
  7. 如何构建一个自己的代理ip池
  8. /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o: In function `_start‘: (.text+0x20
  9. 微信浏览器实现自动下载功能
  10. 离线网页制作器(beta1.0)