nginx如何模拟一个post接口地址 nginx 虚拟ip_nginx如何模拟一个post接口地址

  

写在前面

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

实战内容

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

nginx如何模拟一个post接口地址 nginx 虚拟ip_Nginx_02

nginx如何模拟一个post接口地址 nginx 虚拟ip_nginx如何模拟一个post接口地址_03

在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

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

route add -host 192.168.209.22 dev eth0:1

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

nginx如何模拟一个post接口地址 nginx 虚拟ip_虚拟ip地址是如何实现的_04

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

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

nginx如何模拟一个post接口地址 nginx 虚拟ip_nginx如何模拟一个post接口地址_05

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   

#!/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

重磅福利

微信搜一搜【冰河技术】微信公众号,关注这个有深度的程序员,每天阅读超硬核技术干货,公众号内回复【PDF】有我准备的一线大厂面试资料和我原创的超硬核PDF技术文档,以及我为大家精心准备的多套简历模板(不断更新中),希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!