Nginx分布式与集群概述

Nginx

本章知识点 架构知识点

三 分布式与集群概述

在这里插入图片描述

3.1 概述

分布式计算是计算机科学中一个研究方向,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。分布式网络存储技术是将数据分散地存储于多台独立的机器设备上。分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,不但解决了传统集中式存储系统中单存储服务器的瓶颈问题,还提高了系统的可靠性、可用性和扩展性。

集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益,其任务调度则是集群系统中的核心技术。
集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。
    
架构师:用最少的成本  让你的程序 高可用与高可靠 

3.2 服务器克隆

关机状态下 选中虚拟机右键 ---管理---克隆--》下一步--》下一步--》创建完整的克隆--》名字 位置 克隆

进入克隆的虚拟机:
  第一步:  修改网络地址 改成 具体IP  
  第二步:  重启网卡驱动  service   network  restart
  第三步:  修改主机名称  vim    /etc/hostname
  第四步:   重启  init 6
  第五步:   xshell链接

在这里插入图片描述

四 Nignx使用

4.1 Nginx简介

Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004104日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。201161日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

4.2 正向代理和反向代理

正向代理

正向代理(forward proxy) ,一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并制定目标(原始服务器),然后代理向原始服务器转发请求并将获得的内容返回给客户端,客户端才能使用正向代理。我们平时说的代理就是指正向代理。

AC借钱,由于一些情况不能直接向C借钱,于是A想了一个办法,他让B去向C借钱,这样B就代替AC借钱,A就得到了C的钱,C并不知道A的存在,B就充当了A的代理人的角色。

反向代理 

反向代理(Reverse Proxy),以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求的客户端,此时代理服务器对外表现为一个反向代理服务器。

 AB借钱,B没有拿自己的钱,而是悄悄地向C借钱,拿到钱之后再交给A,A以为是B的钱,他并不知道C的存在 

反向代理服务器可实现三大功能:

\1. 保护网站安全。客户端无法直接访问到网站的web服务器,所有请求必须先经过反向代理服务器,相当于在web服务器和可能的网络攻击之间建立了一个屏障。

\2. 缓存网站的静态资源,提高网站的响应速度。当用户第一次访问静态内容的时候,静态内容就被缓存在反向代理服务器上,这样当其他用户访问该静态内容的时候,就可以直接从反向代理服务器返回,加速web请求响应速度,减轻web服务器负载压力。

\3. 负载均衡。反向代理服务器位于web服务器前面,这个位置正好也是负载均衡服务器的位置,所以大多数反向代理服务器同时提供负载均衡的功能。

实现负载均衡的服务器我们称之为负载均衡服务器,因为反向代理服务器所处的位置与负载均衡服务器所处的位置一致,所以大多数的反向代理服务器同时提供负载均衡的功能。要想实现负载均衡的功能,必须先实现反向代理的功能。当反向代理服务器代理的是一个web服务器集群而不是单个web服务器时,这就是负载均衡了。负载均衡指的是多个服务器共同完成一件事情,核心是“分摊压力”。Ngnix实现负载均衡指的是将请求转发给服务器集群。Ngnix默认处理负载均衡的方式是“轮询”,我们可以通过weight来调整权重

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vb0T4zLm-1665587877706)(…/…/课件/qy134/框架/nginx/assets/wps1.png)]

4.3 nginx特点

· 跨平台:Nginx 可以在大多数 Unix like OS编译运行,而且也有Windows的移植版本。
· 配置异常简单:非常容易上手。配置风格跟程序开发一样,神一般的配置
· 非阻塞、高并发连接:数据复制时,磁盘I/O的第一阶段是非阻塞的。官方测试能够支撑5万并发连接,在实际生产环境中跑到23万并发连接数.(这得益于Nginx使用了最新的epoll模型)
· 事件驱动:通信机制采用epoll模型,支持更大的并发连接。

4.4 内部进程模型

在这里插入图片描述

Nginx是以多进程的方式来工作的,当然Nginx也是支持多线程的方式的,只是我们主流的方式还是多进程的方式,也是Nginx的默认方式。Nginx采用多进程的方式有诸多好处。 

Nginx在启动后,会有一个master进程和多个worker进程。master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控 worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器CPU核数一致,这里面的原因与Nginx的进程模型以及事件处理模型是分不开的。

4.5 处理请求

​ 首先,Nginx在启动时,会解析配置文件,得到需要监听的端口与IP地址,然后在Nginx的master进程里面,先初始化好这个监控的socket(创建socket,设置addrreuse等选项,绑定到指定的IP地址端口,再listen),然后再fork(一个现有进程可以调用fork函数创建一个新进程。由fork创建的新进程被称为子进程 )出多个子进程出来,然后子进程会竞争accept新的连接。

此时,客户端就可以向Nginx发起连接了。当客户端与Nginx进行三次握手,与Nginx建立好一个连接后,某一个子进程会accept成功,得到这个建立好的连接的socket,然后创建Nginx对连接的封装,即ngx_connection_t结构体。

接着,设置读写事件处理函数并添加读写事件来与客户端进行数据的交换。最后,Nginx或客户端来主动关掉连接,到此,一个连接就寿终正寝了。

4.6 nginx的安装

克隆一台虚拟机  修改ip地址 端口号  重启  xshell连接

nginx是基于c实现
    
安装Nginx所需的三个插件gcc、pcre、pcre-devel、zlib
A gcc
linux中的gcc是由GNU推出的一款功能强大的、性能优越的多平台编译器。gcc编译器能将CC++语言源程序和目标程序编译、连接成可执行文件。
查看gcc版本:gcc -v
安装gcc:yum -y install gcc-c++

B 安装pcre、pcre-devel
pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。
安装pcre:yum install -y pcre pcre-devel

C  zlib安装
zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装
安装: yum install -y zlib zlib-devel

 在home目录下 创建一个文件夹  mkdir  /home/nginx
 移动到当前目录              cd   /home/nginx
 下载nginx的安装包          wget http://nginx.org/download/nginx-1.9.9.tar.gz
 解压压缩包                 tar  -zxvf   nginx-1.9.9.tar.gz
  进入这个包                cd  nginx-1.9.9
 
./configure   是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本 

make              是用来编译的,它从Makefile中读取指令,然后编译。  
make install     是用来安装的,它也从Makefile中读取指令,安装到指定的位置。    

     
移动到nginx应用程序下  :  cd  /usr/local/nginx
通过ll查看nginx就安装完成:
[root@nginx-150 nginx]# ll
total 4
drwxr-xr-x. 2 root root 4096 Dec 28 14:07 conf
drwxr-xr-x. 2 root root   40 Dec 28 14:07 html
drwxr-xr-x. 2 root root    6 Dec 28 14:07 logs
drwxr-xr-x. 2 root root   19 Dec 28 14:07 sbin
    
    
启动nginx: [root@nginx-150 nginx]# ./sbin/nginx
关闭nginx: [root@nginx-150 nginx]# ./sbin/nginx -s stop

使用kill 杀死进程号:
关闭Nginx:ps -ef | grep nginx    kill -9 进程号

3.2.7 nginx的配置


我们改Nginx的时候 修改的是  nginx/conf/nginx.conf

# 全局块
 user www-data;
 worker_processes  2;  ## 默认1,一般建议设成CPU核数1-2倍
 error_log  logs/error.log; ## 错误日志路径
 pid  logs/nginx.pid; ## 进程id
 # Events块
 events {
    
    
   # 使用epoll的I/O 模型处理轮询事件。
   # 可以不设置,nginx会根据操作系统选择合适的模型
   use epoll;
   # 工作进程的最大连接数量, 默认1024个
   worker_connections  2048;
   # http层面的keep-alive超时时间
   keepalive_timeout 60;
   # 客户端请求头部的缓冲区大小
   client_header_buffer_size 2k;
 }
 # http块
 http {
    
     
   include mime.types;  # 导入文件扩展名与文件类型映射表
   default_type application/octet-stream;  # 默认文件类型
   # 日志格式及access日志路径
   log_format   main '$remote_addr - $remote_user [$time_local]  $status '
     '"$request" $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
   access_log   logs/access.log  main; 
   # 允许sendfile方式传输文件,默认为off。
   sendfile     on;
   tcp_nopush   on; # sendfile开启时才开启。
 
   # http server块
   # 简单反向代理    haha  redis100
   server {
    
    
     listen       80;
     server_name  domain2.com www.domain2.com;
     access_log   logs/domain2.access.log  main;
      #  如果访问的是   http://192.168.31.152:80/  地址   此时就会找到这个location的配置
		#  nginx配置静态资源
        location /aaa {
    
    
			# 根文件夹    是html这个文件夹  
            root   D:\hbuilderspace\haha;
			# 欢迎页      index.html
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
		#  如果访问的是   http://192.168.31.152:80/50x.html
        location = /50x.html {
    
    
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        # 访问所有以.php结尾的请求 全部映射到  http://127.0.0.1 地址
		# 访问http://192.168.31.152/haha/hehe.html  === 》   http://192.168.31.247:8848/haha/hehe.html 
		# http://192.168.31.152/ccc/hehe.html
		# 配置反向代理
        location   /ccc {
    
    
            proxy_pass   http://192.168.31.247:8848/haha;
        }
       
   }
   # 负载均衡
   upstream backend_server {
    
    
     server 192.168.0.1:8000 weight=5; # weight越高,权重越大
     server 192.168.0.2:8000 weight=1;
     server 192.168.0.3:8000;
     server 192.168.0.4:8001 backup; # 热备
   }
   server {
    
    
     listen          80;
     server_name     big.server.com;
     access_log      logs/big.server.access.log main;
     charset utf-8;
     client_max_body_size 10M; # 限制用户上传文件大小,默认1M
     location / {
    
    
       # 使用proxy_pass转发请求到通过upstream定义的一组应用服务器
       proxy_pass      http://backend_server;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header Host $http_host;
       proxy_redirect off;
       proxy_set_header X-Real-IP  $remote_addr;
     } 
   }
 }

3.2.8 负载均衡配置

upstream hahaha {
    
    
         server  192.168.150.120:8090 ;
         server  192.168.150.121:8090 ;
}

server {
    
    
     ...
    # 配置反向代理+负载均衡
		location   /back/api {
    
    
		    proxy_pass   http://hahaha/boot;
		}
    
}


1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GdMdrSES-1665587877707)(…/…/课件/qy134/框架/nginx/assets/wps1-1607407788702.png)]

2、weight

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DOze83C8-1665587877707)(…/…/课件/qy134/框架/nginx/assets/wps2.png)]

权重越高,在被访问的概率越大,如上例,分别是30%,70%。

3,ip_hash

在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。

我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oLFmFUDx-1665587877708)(…/…/课件/qy134/框架/nginx/assets/wps3.png)]

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-znuDDeUf-1665587877709)(…/…/课件/qy134/框架/nginx/assets/wps4.png)]

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。Nginx本身不支持url_hash,如果需要这种调度算法,则必须安装Nginx的hash软件包

-------------------------------

upstream还可以为每个设备设置状态值,这些状态值的含义分别如下:

down 表示单前的server暂时不参与负载.

weight 默认为1.weight越大,负载的权重就越大。

max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.

fail_timeout : max_fails次失败后,暂停的时间。

backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

#定义负载均衡设备的Ip及设备状态

upstream bakend{

​ ip_hash;

​ server 10.0.0.11:9090 down;

​ server 10.0.0.11:8080 weight=2;

​ server 10.0.0.11:6060;

​ server 10.0.0.11:7070 backup;

}

3.3 nginx的集群搭建

3.3.1 nginx集群的常识

*什么是高可用?*

高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如果一个系统能够一直提供服务,那么这个可用性则是百分之百,但是天有不测风云。所以我们只能尽可能的去减少服务的故障。

解决的问题?

在生产环境上很多时候是以Nginx做反向代理对外提供服务,但是一天Nginx难免遇见故障,如:服务器宕机。当Nginx宕机那么所有对外提供的接口都将导致无法访问。虽然我们无法保证服务器百分之百可用,但是也得想办法避免这种悲剧,今天我们使用keepalived来实现Nginx的高可用。

*2.2 双机热备方案*

这种方案是国内企业中最为普遍的一种高可用方案,双机热备其实就是指一台服务器在提供服务,另一台为某服务的备用状态,当一台服务器不可用另外一台就会顶替上去。

*2.3 keepalived是什么?*

Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP (Virtual Router Redundancy Protocol ,虚拟路由器冗余协议)功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件

*2.4故障转移机制*

Keepalived高可用服务之间的故障切换转移,是通过VRRP(虚拟路由器冗余协议)来实现的。 心跳检测

在 Keepalived服务正常工作时,主 Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主 Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主 Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的 IP资源及服务。而当主 Master节点恢复时,备Backup节点又会释放主节点故障时自身接管的IP资源及服务,复到原来的备用角色。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dtVVf3WQ-1665587877709)(…/…/课件/qy134/框架/nginx/assets/wps2-1626310188270.jpg)]

3.3.2配置集群

IP地址 设备 作用
192.168.239.120 nginx 主 master
192.168.239.121 nginx 备 backup
克隆安装好 nginx的 Linux的系统 修改ip地址 hostname  重启  xshell 连接
yum install -y psmisc 
边写keepalived的心跳脚本: vim  /usr/local/nginx/check.sh
 
#!/bin/bash
    
A=`ps -C nginx --no-header |wc -l`
# 判断A的值 是否是0  如果是0 证明nginx没有启动
if [ $A -eq 0 ];
   then
      # 重启nginx
      /usr/local/nginx/sbin/nginx
      
      
fi
# 休眠2秒
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];
   then
      killall keepalived
fi
解释
[root@nginx-151 /]# ./usr/local/nginx/sbin/nginx 
[root@nginx-151 /]# ps -C nginx
   PID TTY          TIME CMD
  1177 ?        00:00:00 nginx
  1178 ?        00:00:00 nginx
[root@nginx-151 /]# ps -C nginx --no-header
  1177 ?        00:00:00 nginx
  1178 ?        00:00:00 nginx
[root@nginx-151 /]# ps -C nginx --no-header |wc -l
2
      
被脚本添加可执行权限 :  chmod   755  /usr/local/nginx/check.sh

安装keepalived :yum -y install keepalived
192.168.239.120  主机keepalived的配置
编辑配置文件:vim  /etc/keepalived/keepalived.conf   d G删除原有配置
        
global_defs {
    
    
    notification_email {
    
    
          123@qq.com   # 收件人--程序员
    }
    notification_email_from  456@qq.com #发送通知邮件时邮件源地址是谁 发件人-运维
    smtp_server 127.0.0.1
    smtp_connect_timeout 30  #连接smtp连接超时时间
    router_id  LVS_DEVEL  #机器标识
}

## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。
vrrp_script   chk_nginx {
    
    
        script "/usr/local/nginx/check.sh" ## 检测 nginx 状态的脚本路径
        interval 2 ## 检测时间间隔
        weight   10 ## 如果条件成立,权重-10
}

## 定义虚拟路由, VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    
    
        state      MASTER ## 主节点为 MASTER, 对应的备份节点为 BACKUP
        interface  ens33  ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同
        virtual_router_id 120 ## 虚拟路由的 ID 号, 两个节点设置必须一样, 可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
        mcast_src_ip 192.168.239.120 ## 本机 IP 地址
        priority     100 ## 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高 50
        advert_int     1 ## 组播信息发送间隔,两个节点设置必须一样, 默认 1s
        ## 设置验证信息,两个节点必须一致
        authentication {
    
    
                auth_type  PASS ##授权类型  username
                auth_pass  1111 ##授权密码 真实生产,按需求对应该过来  password
        }
        ## 将 track_script 块加入 instance 配置块
        track_script {
    
    
                chk_nginx ## 执行 Nginx 监控的服务
        } #
        # 虚拟 IP 池, 两个节点设置必须一样
        virtual_ipaddress {
    
    
                192.168.239.66 ## 虚拟 ip,可以定义多个 
        }
}
192.168.239.151  备机keepalived的配置
编辑配置文件:vim  /etc/keepalived/keepalived.conf   d G删除原有配置
    
global_defs {
    
    
     notification_email {
    
    
          123@qq.com   #收件人--程序员
    }
    notification_email_from  456@qq.com #发送通知邮件时邮件源地址是谁 发件人-运维
    smtp_server 127.0.0.1
    smtp_connect_timeout 30  #连接smtp连接超时时间
    router_id  LVS_DEVEL_BAK  #机器标识
}
## keepalived 会定时执行脚本并对脚本执行的结果进行分析,动态调整 vrrp_instance 的优先级。如果脚本执行结果为 0,并且 weight 配置的值大于 0,则优先级相应的增加。如果脚本执行结果非 0,并且 weight配置的值小于 0,则优先级相应的减少。其他情况,维持原本配置的优先级,即配置文件中 priority 对应的值。
vrrp_script chk_nginx {
    
    
        script "/usr/local/nginx/check.sh" ## 检测 nginx 状态的脚本路径
        interval 2 ## 检测时间间隔
        weight -10 ## 如果条件成立,权重-10
}
## 定义虚拟路由, VI_1 为虚拟路由的标示符,自己定义名称
vrrp_instance VI_1 {
    
    
        state BACKUP ## 主节点为 MASTER, 对应的备份节点为 BACKUP
        interface ens33  ## 绑定虚拟 IP 的网络接口,与本机 IP 地址所在的网络接口相同
        virtual_router_id 120 ## 虚拟路由的 ID 号, 两个节点设置必须一样, 可选 IP 最后一段使用, 相同的 VRID 为一个组,他将决定多播的 MAC 地址
        mcast_src_ip 192.168.239.121 ## 本机 IP 地址
        priority 50     ## 节点优先级, 值范围 0-254, MASTER 要比 BACKUP 高 50
            
        nopreempt       ## 优先级高  备的设置 nopreempt 解决异常恢复后再次抢占的问题
            
        advert_int 1 ## 组播信息发送间隔,两个节点设置必须一样, 默认 1s
        ## 设置验证信息,两个节点必须一致
        authentication {
    
    
                auth_type PASS  ##授权类型
                auth_pass 1111  ##授权密码 真实生产,按需求对应该过来
        }
        ## 将 track_script 块加入 instance 配置块
        track_script {
    
    
                chk_nginx ## 执行 Nginx 监控的服务
        } #
        # 虚拟 IP 池, 两个节点设置必须一样
        virtual_ipaddress {
    
    
                192.168.239.66 ## 虚拟 ip,可以定义多个 
        }
}    

启动 测试
    两台电脑启动nginx 
    cd   /usr/local/nginx/sbin
    ./nginx
    
    启动keppalived  :  service   keepalived  start

此时浏览器 地址访问   http://192.168.239.66/qy123/stu/list   依然能访问此时访问的是keepalived的虚拟ip


测试 是否能主备切换
    Windows中使用cmd黑窗口

  C:\Users\Administrator>arp -a 192.168.239.66
  接口: 192.168.239.1 --- 0x14
  Internet 地址         物理地址              类型
  192.168.239.66        00-0c-29-ac-42-a9     动态

      
   此时我们将两台 linux的 ip addr 进行输出
150 地址为
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:ac:42:a9 brd ff:ff:ff:ff:ff:ff

151地址为
    2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:8a:3b:e2 brd ff:ff:ff:ff:ff:ff


此时我们将150的linux 直接模拟宕机(reboot)
访问浏览器 没毛病
   
 此时再次打印网卡信息  发现切换到备机
 C:\Users\Administrator>arp -a 192.168.239.66

  接口: 192.168.239.1 --- 0x14
  Internet 地址         物理地址              类型
  192.168.239.66        00-0c-29-8a-3b-e2     动态

我们将主机进行修复  再次访问 发现又切换成了150

猜你喜欢

转载自blog.csdn.net/Liu_wen_wen/article/details/127292749