LVS/NAT实战篇(二)
程序员文章站
2022-04-11 08:03:09
...
一、LVS/NAT原理和特点
1. 重点理解NAT方式的实现原理和数据包的改变。
(1). 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP
(2). PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链
(3). IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP
(4). POSTROUTING链通过选路,将数据包发送给Real Server
(5). Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP
(6). Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP
2. LVS-NAT模型的特性
- RS应该使用私有地址,RS的网关必须指向DIP
- DIP和RIP必须在同一个网段内
- 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈
- 支持端口映射
- RS可以使用任意操作系统
- 缺陷:对Director Server压力会比较大,请求和响应都需经过director server
二、LVS/NAT环境
三、实践
1)配置各个vm的IP地址(lvs调度器有两块网卡)完成之后
2)配置LVS调度器
yum -y install ipvsadm //安装ipvsadm工具
ipvsadm -v //查看版本
ipvsadm -A -t 172.16.16.172:80 -s rr
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.21:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.22:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.23:80 -m -w 1
ipvsadm -a -t 172.16.16.172:80 -r 192.168.7.24:80 -m -w 1
ipvsadm -ln //查看节点状态
ipvsadm -d -r 192.168.7.21:80 -t 172.16.16.172:80 //-d:删除某个节点;-D:删除整个虚拟服务器(ipvsadm -D -t 172.16.16.172:80);
ipvsadm-save > /etc/sysconfig/ipvsadm //保存策略
service ipvsadm stop //清除策略
service ipvsadm start //启动策略
3)配置web服务器 (使用nginx)每个节点都要做此步
yum -y install pcre-devel zlib-devel
useradd -M -s /sbin/nologin nginx
tar zxf nginx1.6.......gz
cd /nginx1.6.0/
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
echo "www.baidu.com:21" > /usr/local/nginx/html/index.html
nginx -t //检测配置文件
nginx //启动nginx
killall -s HUP或-1 nginx //重载
killall -s QUIT或-3 nginx //杀死进程
route add default gw 192.168.7.254
4)配置NFS共享存储
yum -y install nfs-utils rpcbind //提供NFS共享服务;提供RPC支持
chkconfig nfs on
chkconfig rpcbind on
mkdir -p /opt/zm
vim /etc/exports
/opt/zm 192.168.7.0/24(rw,sync,no_root_squash) //rw:读写,sync:允许同步写入,no_root_squash:客户机以root身份访问时赋予本地root权限。
service rpcbind start
service nfs start
showmount -e //查看本机发布的NFS共享目录
//手动挂载
mount 192.168.7.250:/opt/zm /usr/loca/nginx/html/
//fstab自动挂载
192.168.7.250:/opt/zm /usr/local/nginx/html nfs default,_netdev 0 0 //若要加soft,intr参数可以实现软挂载,——netdev设备需要网络;
上一篇: Nginx服务优化——实战篇二
下一篇: 各种求lca的办法