Lvs-nat基于nfs实现php应用

Lvs-nat就是多目标DNAT,也就是多目标的地址转换;通过将请求报文中的目标地址和端口地址修改为挑选出来的某RS的RIP和PORT实现转发;

Lvs-nat处理请求过程及其特点:

1、当客户端发出请求时,前端主机接受请求;此时源IP时CIP,目标IP时VIP

2、当客户端请求报文经过PREROUTING流入本机的INPUT链上时,如果发现此请求是个集群服务, 随后直接将请求发送给POSTROUTING;再经由前端主机挑选出由那个后端主机提供服务;随后再将请求报文发送给后端主机;此时源IP时CIP,目标IP是RIP1(注意:DIP的网关要指向RIP1)

3、RIP1接受请求,处理请求,将构建好的响应报文外加一层IP守护;随后再将响应报文发送给前端主机;此时源IP是RIP1,目标IP时CIP(注意:谁最初请求的就响应给谁;同时RIP的网关要指向DIP,这样才能发送报文)

4、VIP接受到报文后;再将响应报文发送个给客户端;此时源IP是VIP;目标IP是CIP

真正提供服务的是后端主机;但人们认为提供服务的时前端主机;所以后端主机形成了完美的地址伪装;具有较高的安全性,以防被黑客攻击;但是在整个过程中,所有的响应都必须要经过前端主机,当有大量的用户请求时,前端主机的性能是一个瓶颈!

nfs:Network  flile  system,网络文件系统,监听在tcp协议的2049端口;主要作用是实现文件共享存储;

准备环境:

虚拟机1:网卡1: 172.18.42.122;网卡2:10.0.1.100;作为前端主机

虚拟机2:10.0.1.99;作为后端主机

虚拟机3:10.0.1.200;作为nfs文件共享存储

在虚拟机1安装ipvsadm

[[email protected] ~]# yum install ipvsadm -y
[[email protected] ~]# ipvsadm -Ln   ## 查看规则的先关信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port   Forward Weight ActiveConn InActConn

随后定义规则

[[email protected] ~]# ipvsadm -A  -t  172.18.42.122:80 -s rr   ##增加一条集群规则
[[email protected] ~]# ipvsadm -a  -t  172.18.42.122:80 -r 10.0.1.99 -m -w 1  ##在指定的集群上添加RS的规则
[[email protected] ~]# curl http://172.18.42.122    ##查看规则是否定义成功 
<h1>
10.0.1.99 Web Server RS1
</h1>

在虚拟机3启动nfs服务;

[[email protected] ~]# vim /etc/exports
 /lweim  10.0.1.99(rw)  ##添加这一行
[[email protected] ~]# exportfs  -r  ##重载文件

在虚拟机2查看使用showmount命令查看

[[email protected] ~]# showmount -e 10.0.1.200  ##查看是否共享
Export list for 10.0.1.200:
/lweim 10.0.1.99
[[email protected] ~]# mount -t nfs 10.0.1.200:/lweim /var/www/html/ ##把指定的目录挂载至虚拟机2上
[[email protected] ~]# mount   ##查看是否挂载上
10.0.1.200:/lweim on /var/www/html type nfs (rw,vers=4,addr=10.0.1.200,clientaddr=10.0.1.99)

在虚拟3上更改共享目录的权限以及属主

[[email protected] ~]# chown -R apache:apache /lweim/*  ##将共享目录下所有文件属组属主更改为apache
[[email protected] ~]# ll /lweim/wtc/   ##查看是否更改
total 24
-rw-rw-r--  1 apache apache  451 Nov 29  2014 AUTHORS
-rwxrwxr-x  1 apache apache 3757 Nov 29  2014 LICENSE
-rw-r--r--  1 apache apache 5796 Nov 29  2014 profile_run.htm
-rw-rw-r--  1 apache apache  516 Nov 29  2014 readme.txt
drwxrwxr-x 14 apache apache 4096 Nov 29  2014 upload
[[email protected] ~]# setfacl -m u:apache:rwx /lweim/wtc/*   ##更改其权限
[[email protected] ~]# ll /lweim/wtc/
total 24
-rw-rwxr--+  1 apache apache  451 Nov 29  2014 AUTHORS
-rwxrwxr-x+  1 apache apache 3757 Nov 29  2014 LICENSE
-rw-rwxr--+  1 apache apache 5796 Nov 29  2014 profile_run.htm
-rw-rwxr--+  1 apache apache  516 Nov 29  2014 readme.txt
drwxrwxr-x+ 14 apache apache 4096 Nov 29  2014 upload

在虚拟2上安装lamp以及php-xml(phpwind的扩展能够;否则安装的时候有可能失败)

[[email protected] ~]# yum install httpd php php-mysql mysql-server -y  ##安装程序

[[email protected] ~]# service httpd start    ##启动httpd服务

在Web服务上访问php程序

在虚拟机2启动mysql程序,并授权

 [[email protected] ~]# service mysqld start  #启动mysql服务
 mysql> grant all on lweim.* to [email protected]‘127.0.0.1‘ identified by ‘lweim‘;  ##创建本地授权用户“lweim”
 Query OK, 0 rows affected (0.00 sec)
 mysql> create database lweim;   ##创建数据库 “lweim”
 Query OK, 1 row affected (0.00 sec)
 mysql> flush privileges;    ##更新数据库
 Query OK, 0 rows affected (0.00 sec)

安装phpwind并登陆

问题小结:

(1)对于nfs共享的目录一定要更改其属主属组以及权限;同时在客户端和服务端一定又要UID相同的用户,这一点很重要;

(2)在对前端主机设置管理服务器规则时要注意到底是基于VIP还是基于DIP访问Web服务;

时间: 2024-10-29 19:07:26

Lvs-nat基于nfs实现php应用的相关文章

linux lvs集群nat模式(比上一篇的lvs nat实用)

这是一篇以apcache服务为例介绍lvs的nat模式配合keepalived实现的方案.实验拓扑图如下所示,虚线上面的大图可以看成是虚线下面"服务器群"的放大版: 本实验共用到4台linux虚拟服务器,其中两台rhel5.6作为主从HA(keepalived)服务器,另外两台rhel4.6模拟Apache服务器--用两台Apache服务器模拟多台Apache服务器. 实验原理是,用Apache服务器为代表模拟实际用到的服务器,用两台Apache模拟多台Apache,所有的Apache

lvs nat搭建

生产环境网站离不开负载均衡.高可用性这样的字眼,不用解释便知道其中的意义与重要性.高可用性可以用keepalived实现,负载均衡可以用lvs或者nginx实现,二者的区别是lvs基于网络层,nginx基于应用层或者基于浏览器.lvs有3中实现方式,分别是nat.dr.tunel(隧道),三者大体相似,这里介绍nat模式,本文也没用介绍keepalived,以后有时间再写. 实验环境:使用vmware虚拟出4台linux,有一台作为client(rhel4.6),其中两台作为realserver

LVS集群的基本原理、LVS/NAT模式的配置、LVS/DR模式的配置、编写自动脚本检查LVS上realserver健康性

Linux 虚拟服务器(LVS)由章文嵩在国防科技大学就读博士期间创建利用LVS可以实现高可用的.可伸缩的Web.Mail.Cache和Media等网络服务,已经被集成到linux内核里了. 1.什么是集群? 使用一组服务器提供相同的服务2.使用集群的目的? 增强可靠性   降低成本   提高可扩展性   提高性能3.集群分类? HPC 高性能计算集群    (气象   航天   航空)    LB    负载均衡集群 (平均地分摊处理)    * LVS    hproxy HA    高可用

18.6 负载均衡集群介绍;18.7 LVS介绍;18.9 LVS NAT模式搭建(上);18.10 LVS NAT模式搭建(下)

扩展: lvs 三种模式详解 http://www.it165.net/admin/html/201401/2248.html lvs几种算法 http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html lvs原理相关的   http://blog.csdn.net/pi9nc/

Lvs+keepalived+httpd+NFS搭建高可用

Lvs+keepalived+httpd+NFS搭建高可用 自己捯饬的模型图 NAT模型图 注意事项:RealServer需要把网关指向Director,并且Director要打开转发功能命令如下: echo "1" > /proc/sys/net/ipv4/ip_foreward DR模型图 注意事项:需要在RealServer配置如下信息: echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 1 > /proc

负载均衡集群介绍、LVS介绍及调度算法、LVS NAT模式搭建

负载均衡集群介绍 实现负载均衡集群的软件有:LVS.keepalived.Nginx.haproxy等.其中LVS属于四层(网络OSI模型):Nginx 属于七层:haproxy既可以认为是四层,也可以当作是七层使用. keepalived 的负载均衡功能其实就是lvs LVS.haproxy这种四层负载均衡可以分发除80端口以外的通信,如mysql-3306:而nginx 仅仅支持http,https,mail. 相对来说,LVS 这种四层的更加稳定,能承受更多的请求,而nginx 这种七层的

负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建

18.6 负载均衡集群介绍 主流开源软件LVS.keepalived.haproxy.Nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,可以当做7层使用 keepalived的负载均衡功能其实就是lvs lvs这种4层的负载均衡是可以分发除80外的其他端口通信的,比如MySQL的,而Nginx仅仅支持HTTP,HTTPS,mail,haproxy也支持MySQL这种 相比较来说,LVS这种4层的更稳定,能承受更多的请求,而Nginx这种

负载均衡集群介绍(LB集群)、 LVS介绍、LVS NAT模式、LVS DR模式

负载均衡集群介绍(LB集群) LB集群是load balance集群的简写,翻译成中文就是负载均衡集群 负载均衡的原理就是当用户的请求过来时,会直接发到分发器上,然后它把用户的请求根据预先设置好的算法,只能均衡的分发到后端真正的服务器上.如果不同的机器,可能用户请求到的数据不一样,为了避免这样的情况发生,所有用到了共享存储,这样保证所有的用户请求的数据是一样的 主流开源软件LVS.keepalived.haproxy.nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,

18.6 负载均衡集群介绍;18.7 LVS介绍;18.9-18.10 LVS NAT模式搭建(上下

扩展 lvs 三种模式详解 : http://www.it165.net/admin/html/201401/2248.html lvs几种算法 : http://www.aminglinux.com/bbs/thread-7407-1-1.html 关于arp_ignore和 arp_announce : http://www.cnblogs.com/lgfeng/archive/2012/10/16/2726308.html lvs原理相关的 : http://blog.csdn.net/p

LVS/NAT双主 + keepalived负载均衡实现

一.keepalived简介 keepalived是分布式部署解决系统高可用的软件,结合lvs(LinuxVirtual Server)使用,解决单机宕机的问题.keepalived是一个基于VRRP协议来实现IPVS的高可用的解决方案.对于LVS负载均衡来说,如果前端的调度器direct发生故障,则后端的realserver是无法接受请求并响应的.因此,保证前端direct的高可用性是非常关键的,否则后端的服务器是无法进行服务的.而我们的keepalived就可以用来解决单点故障(如LVS的前