目录

一、环境准备

二、两台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(主备均启动)

systemctl enable keepalived

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的访问也是不受影响的!!

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

 

Logo

一起探索未来云端世界的核心,云原生技术专区带您领略创新、高效和可扩展的云计算解决方案,引领您在数字化时代的成功之路。

更多推荐