如何在服务器上添加虚拟IP
2024年06月28日
32
最近,有位小伙伴为了实现Nginx的高可用,在自己的服务器上搭建了一套Nginx集群,Nginx节点的服务器总共有3台。那么问题来了:如何对外只使用一个IP地址,通过某种策略来访问三个服务器节点上的Nginx?答案就是:可以使用虚拟IP来实现!那么,如何在服务器上添加虚拟IP?今天,我们就一起实操在服务器上添加虚拟IP。

最近,有位小伙伴为了实现Nginx的高可用,在自己的服务器上搭建了一套Nginx集群,Nginx节点的服务器总共有3台。那么问题来了:如何对外只使用一个IP地址,通过某种策略来访问三个服务器节点上的Nginx?答案就是:可以使用虚拟IP来实现!那么,如何在服务器上添加虚拟IP?今天,我们就一起实操在服务器上添加虚拟IP。

实战内容

这里我们创建两个虚拟机环境,IP地址分别为192.168.209.121和192.168.209.122,如下图所示:

image.png

在192.168.209.122上添加一个VIP地址为:192.168.209.22,执行如下命令

ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up

eth0:1表示这个VIP绑定的目标网卡设备,192.168.209.22就是VIP的值,广播地址为192.168.209.255,子网掩码为:255.255.255.0,up表示立即启用这个VIP。

接着下来,我们通过route命令,在路由表上添加对这个VIP的路由信息

route add -host 192.168.209.22 dev eth0:1

此时,我们在192.168.209.121这台虚拟机上执行ifconfig命令如下:

image.png

多了一张eth0:1网卡,说明VIP创建成功。

接下来,我们ping 192.168.209.22,如下图:

image.png

ping成功,说明我们的VIP创建测试成功。

注意: VIP信息在主机重启后会消失,所以我们最好是将创建VIP的命令写成一个脚本vip.sh,将脚本配置到环境变量和开机启动项:

脚本信息如下:

#!/bin/bash 
ifconfig eth0:1 192.168.209.22 broadcast 192.168.209.255 netmask 255.255.255.0 up 
route add -host 192.168.209.22 dev eth0:1