1.环境说明

三台服务器,一台叫dir,两台叫rs1和rs2 (director 和 real server)

dir外网ip:192.168.192.129  内网ip:192.168.1.114

rs1内网ip:192.168.1.116  

rs2内网ip:192.168.1.115

2.安装和配置

dir

 yum install -y ipvsadm

rs1 rs2

wget www.lishiming.net/data/attachment/forum/epel-release--8_64.noarch.rpm

rpm -ivh epel-release--8_64.noarch.rpm
 yum install -y nginx

dir

 vim /usr/local/sbin/lvs_nat.sh

#! /bin/bash
# director 服务器上开启路由转发功能:
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭 icmp 的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/eth1/send_redirects
# director 设置 nat 防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE
# director 设置 ipvsadm
IPVSADM='/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.192.129:80 -s rr
$IPVSADM -a -t 192.168.192.129:80 -r 192.168.1.116:80 -m
$IPVSADM -a -t 192.168.192.129:80 -r 192.168.1.115:80 -m

 
$IPVSADM -A -t 192.168.192.129:80 -s rr  //-A-t 增加director  -s算法
$IPVSADM -a -t 192.168.192.129:80 -r 192.168.1.116:80 -m //-a-t增加real_server -r  real_server -m MASQUERADE 用nat必须用-m  -w 1 权重
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE // 规则 -t针对nat表 -A POSTROUTING链 -s从192.168.1这个网段来的包 -j MASQUERADE伪装
sh /usr/local/sbin/lvs_nat.sh
ipvsadm -ln

rs1,rs2

 vi /etc/sysconfig/network-scripts/ifcfg-eth0
GATEWAY=192.168.11.164
ifdown eth0; ifup eth0

启动rs1的nginx

/etc/init.d/nginx start

rs2默认启动

访问外网ip,第一次请求到了rs2,刷新变成rs1

(一次1 一次2)

curl 192.168.192.129
$IPVSADM -A -t 192.168.192.129:80 -s wrr
$IPVSADM -a -t 192.168.192.129:80 -r 192.168.1.116:80 -m -w 2
$IPVSADM -a -t 192.168.192.129:80 -r 192.168.1.115:80 -m -w 1
两次1 一次2

linux系统构架 - LB集群之LVS的NAT的更多相关文章

  1. linux系统构架 - LB集群之LVS介绍

    LB 集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有 nginx.lvs.keepalived ,商业的硬件负载设备 F5.Netscale. LB ...

  2. linux系统构架 - LB集群之LVS的DR设置

    在lvs的nat模式的基础上 1.清空ipvsadm规则 ipvsadm -C 查看 ipvsadm -ln 2.清空iptables规则 iptables -t nat -F 3.修改rs的网卡配置 ...

  3. Linux系统构架 - HA集群配置

    一.安装 HA 即(high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器 A 和 B,正常是 A 提供服务,B 待命闲置,当 A 宕机或服务宕掉,会切换至 ...

  4. 关于Linux系统下zookeeper集群的搭建

    1.集群概述 1.1什么是集群 1.1.1集群概念 集群是一种计算机系统, 它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系 ...

  5. linux系统搭建zookeeper集群

    转载至:https://blog.csdn.net/weixin_38111957/article/details/82927878 一.引言 今天咱们就来搭建一下zookeeper集群,当然搭建集群 ...

  6. Linux系统搭建Hadoop集群

    一.环境说明 IP地址 主机名 备注 操作系统 192.168.92.11 hserver1 namenode Ubuntu 16.04 192.168.92.12 hserver2 datanode ...

  7. linux 集群及lvs

    集群及LVS 集群: 一组通过高速网络互联的计算机组,并以单一系统的模式加以管理 价格很多服务器集中起来,提供同一种服务,在客户端看起来就像只有一个服务器 可以在付出较低成本的情况下获得在性能,可靠性 ...

  8. Linux集群服务 LVS

    linux虚拟服务器(LVS)项目在linux操作系统上提供了最常见的负载均衡软件. 集群定义: 集群(cluster)技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能.可靠性 ...

  9. 基于VMware的虚拟Linux集群搭建-lvs+keepalived

    基于VMware的虚拟Linux集群搭建-lvs+keepalived 本文通过keepalived实现lvsserver的的双机热备和真实server之间的负载均衡.这方面的blog挺多,可是每一个 ...

随机推荐

  1. JavaScript 中 OnLoad事件用法总结

    还差一天现在手头上的这套网站就写完了,中午蹭了半天还是没睡好,干脆爬起来把今天上午写到的onload事件给整理一下. 一般用到比较多的就是初始化数据或者效果. 1.直接写在<body>标签 ...

  2. ssm+PageHelper实现分页查询

    通过搭建ssm框架,然后通过mybatis的分页插件pagehelp进行分页查询.源码:https://gitee.com/smfx1314/pagehelper 看一下项目结构: 首先创建一个mav ...

  3. BZOJ1131 POI2008 Sta 【树形DP】

    BZOJ1131 POI2008 Sta Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=10 ...

  4. 错误:'class QApplication' has no member named 'setMainwidget'

    错误:'class QApplication' has no member named 'setMainwidget' 转自:http://blog.csdn.net/chenqiai0/articl ...

  5. Flask第二篇——服务器相关

    web服务器.应用服务器和web应用框架 web服务器:负责处理http请求.响应静态文件,常见的有Apache,Nginx以及微软的IIS 应用服务器:负责处理逻辑的服务器.比如php.python ...

  6. MySQL安装与操作总结

    安装MySQL 添加mysql源 # rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm 安装mysq ...

  7. LG3690 【模板】Link Cut Tree (动态树)

    题意 给定n个点以及每个点的权值,要你处理接下来的m个操作.操作有4种.操作从0到3编号.点从1到n编号. 0:后接两个整数(x,y),代表询问从x到y的路径上的点的权值的xor和.保证x到y是联通的 ...

  8. angularJS自定义一个过滤器

    ng允许我们自定义指令 下面来我们自己来定义一个过滤指令:filter,返回一个函数的形式 filter(name,callback(){//name:过滤器的名字,callback:匿名函数 ret ...

  9. CMapStringToPtr添加与释放

    // 创建MapStringToPtr CMapStringToPtr m_prjFiles; CStringList m_fileList; m_fileList.AddTail(_T(" ...

  10. ubuntu 安装Eigen

    Eigen官网 Eigen是一个高层次的C ++库,有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法. ubuntu下安装: sudo apt-get install libeigen3-de ...