• Nginx七层的负载均衡使用keepalived实现高可用


    目录

    一、环境准备

    二、两台nginx服务器作为代理服务器,配置nginx的负载均衡

    三、Keepalived实现调度器

    Proxy-master 与 Proxy-slave机器同时操作安装

    备份配置文件

    编辑主Proxy-master的配置文件

    编辑从 Proxy-slaver的配置文件

    四、 启动KeepAlived(主备均启动)

    五、测试


    一、环境准备

    主机清单

    主机名ip系统用途
    Proxy-master10.12.153.49centos7主负载
    Proxy-slave10.12.153.108centos7主备
    Real-server110.12.153.113Centos7web1
    Real-server210.12.153.115centos7Web2

    1、关闭防火墙和selinux

    2、更改主机名

    3、域名解析

    4、四台机器分别安装nginx,并启动

    配置安装nginx_安装配置nginx-CSDN博客

    详细过程可参考之前的文章

    这里我们选择的是ngixn1.20.1版本

    二、两台nginx服务器作为代理服务器,配置nginx的负载均衡

    两台机器的配置完全一样

    vim /etc/nginx/nginx.conf

    user  nginx;
    worker_processes  auto;

    error_log  /var/log/nginx/error.log notice;
    pid        /var/run/nginx.pid;


    events {
        worker_connections  1024;
    }


    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;

        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';

        access_log  /var/log/nginx/access.log  main;

        sendfile        on;
        #tcp_nopush     on;

        keepalive_timeout  65;

        #gzip  on;

        include /etc/nginx/conf.d/*.conf;

      upstream backend {
        server 10.12.153.113:80 weight=1 max_fails=3 fail_timeout=20s;
        server 10.12.153.115:80 weight=1 max_fails=3 fail_timeout=20s;
        }
        server {
            listen 80;
            server_name localhost;

                    location / {
                            proxy_pass http://backend;
                            proxy_set_header Host $host:$proxy_port;
                            proxy_set_header X-Forwarded-For $remote_addr;
                    }
            }
    }

    保存退出后

    查看ngnix配置文件是否语法出错

    nginx -t

    重新加载配置文件

    nginx -s reload

    三、Keepalived实现调度器

    注:主/备调度器均能够实现正常调度
    1. 主/备调度器安装软件 

    Proxy-master 与 Proxy-slave机器同时操作安装

    yum install -y keepalived

    备份配置文件

    cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.bak

    编辑主Proxy-master的配置文件

    ! Configuration File for keepalived

    global_defs {
       router_id directory1   
    }

    vrrp_instance VI_1 {
        state MASTER        #定义主还是备
        interface ens33     #VIP绑定接口
        virtual_router_id 80  #整个集群的调度器一致
        priority 100         #back改为50
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.12.153.109/24   # keepalived提供的对外开放的vip
        }
    }

    编辑从 Proxy-slaver的配置文件

     Configuration File for keepalived

    ! Configuration File for keepalived
     

    global_defs {
       router_id directory2  #注意这里的id区别
    }

    vrrp_instance VI_1 {
        state BACKUP    #设置为backup
        interface ens33
        nopreempt        #设置到back上面,不抢占资源
        virtual_router_id 80
        priority 50   #辅助改为50
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            10.12.153.109/24
        }
    }

    四、 启动KeepAlived(主备均启动)

    1. systemctl enable keepalived
    2. systemctl start keepalived

    到此:
    可以解决心跳故障keepalived
    不能解决Nginx服务故障

    五、测试

    页面访问测试

    我们正常访问为方便识别Real-server1和Real-server2页面是这样的

    现在我们通过访问Keepalived我们定义的对外开放的vip的ip来看看

    再来测试一下高可用

    查看Proxy-master的ip

    这时候 Proxy-slaver是没有这个vip的ip的处于备用状态

    我们通过关闭Proxy-master服务器的keepalived服务查看vip的ip会不会漂移到 Proxy-slaver服务器

    这样就算master宕机,通过高可用备成为新的主,我们对于Real-server1和Real-server2的访问也是不受影响的!!

     希望能够帮助到大家!!!

     

  • 相关阅读:
    Java真实面试(苏州安硕信息)
    应用层 HTTP消息在服务端的路由 请求头 Host
    CV2对图像做渐变模糊
    anaconda使用虚拟环境安装pytorch1.13+cuda11.7版(2022.11月测试有效)
    淘宝API详情接口调用示例
    Servlet快速入门
    【web-解析目标】(1.1.3)解析内容和功能:发现隐藏的内容、参数
    Hadoop之HDFS重点架构原理简介
    算法学习:LeetCode-592. 分数加减运算
    石油、化工 工程上都在用的地下管线探测仪---TFN A1200
  • 原文地址:https://blog.csdn.net/yz2322944912/article/details/136633620