设为首页 收藏本站
查看: 1335|回复: 0

[经验分享] Lvs-nat基于nfs实现php应用

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-12 09:05:57 | 显示全部楼层 |阅读模式
  Lvs-nat就是多目标DNAT,也就是多目标的地址转换;通过将请求报文中的目标地址和端口地址修改为挑选出来的某RS的RIP和PORT实现转发; wKioL1czFl3h05HSAABHxSBemks125.jpg













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
1
2
3
4
5
[iyunv@localhost ~]# yum install ipvsadm -y
[iyunv@localhost ~]# ipvsadm -Ln   ## 查看规则的先关信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port   Forward Weight ActiveConn InActConn



随后定义规则


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




在虚拟机3启动nfs服务;
1
2
3
[iyunv@localhost ~]# vim /etc/exports
/lweim  10.0.1.99(rw)  ##添加这一行
[iyunv@localhost ~]# exportfs  -r  ##重载文件



在虚拟机2查看使用showmount命令查看
1
2
3
4
5
6
[iyunv@localhost ~]# showmount -e 10.0.1.200  ##查看是否共享
Export list for 10.0.1.200:
/lweim 10.0.1.99
[iyunv@localhost ~]# mount -t nfs 10.0.1.200:/lweim /var/www/html/ ##把指定的目录挂载至虚拟机2上
[iyunv@localhost ~]# 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上更改共享目录的权限以及属主
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[iyunv@localhost ~]# chown -R apache:apache /lweim/*  ##将共享目录下所有文件属组属主更改为apache
[iyunv@localhost ~]# 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
[iyunv@localhost ~]# setfacl -m u:apache:rwx /lweim/wtc/*   ##更改其权限
[iyunv@localhost ~]# 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的扩展能够;否则安装的时候有可能失败)
[iyunv@localhost ~]# yum install httpd php php-mysql mysql-server -y  ##安装程序
[iyunv@localhost ~]# service httpd start    ##启动httpd服务

在Web服务上访问php程序
wKioL1czQv-CQCxPAADfZhoN4xc892.jpg

在虚拟机2启动mysql程序,并授权
1
2
3
4
5
6
7
[iyunv@localhost ~]# service mysqld start  #启动mysql服务
mysql> grant all on lweim.* to lweim@'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并登陆
wKiom1czRlrDnZISAABdpkP-Qmg492.jpg

问题小结:
(1)对于nfs共享的目录一定要更改其属主属组以及权限;同时在客户端和服务端一定又要UID相同的用户,这一点很重要;
(2)在对前端主机设置管理服务器规则时要注意到底是基于VIP还是基于DIP访问Web服务;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-215836-1-1.html 上篇帖子: LVS集群详解(持续更新中) 下篇帖子: 基于LVS的DR模式实现PHP应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表