【小镇的技术天梯】lanmp服务器集群搭建(2)nfs文件共享

在上一篇的文章中小镇解决了lanmp最基本的问题,流量分摊和负载均衡。在这章,小镇将说明服务器集群中的一个重要的点,那就是文件的共享。

首先先看小镇画的lanmp的服务器简易的架构图,如下图所示:


大家可以看到192.168.1.200为nfs存储器,为什么要用nfs文件共享呢?因为文件共享是保持各台服务器文件同步最好的方法,还有一种使用rsync来双向的保持同步,但是那样对服务器的负载要求比较高,但是这些都是要视情况而定的。

【大家可能不理解为什么要保持各个服务器之间的同步,大家想一下,你写的代码总归是要上传一个服务器的,比如说你写了一个test.php的文件,你上传了192.168.1.102服务器,那么服务器192.168.1.102是能正常工作了,但是如果流量分给了另外两台apache的服务器的话就不能正常工作了,因为这两台服务器上面没有test.php这个文件,这时候就要保持着三台服务器文件的同步,最简便的方法就是三台服务器都用nfs的共享文件夹,nfs的存储器最好用io性能较好的服务器。(不需要太好,io性能最好的服务器应该给mysql集群,我们要节省开支。)】

小镇现在就开始讲怎么搭建nfs服务器。

首先ssh连上nfs服务器。输入如下命令安装nfs:

yum -y install nfs-utils rpcbind

如果yum中没有这些包就更新下yum源(小镇觉得更新到centos7.2最方便,或者就是用docker来部署应用,小镇有一篇文章讲过docker部署的)

然后修改nfs的配置文件 /etc/exports,exports文件默认是空的。在其中添加一行 /opt/webapp *(rw,no_squash,sync,insecure),这句话的意思就是将/opt/webapp这个文件夹共享出去,*就是代表着所有的ip都可以访问,后面的参数的详细信息如下:

rw:read-write,可读写;

ro:read-only,只读;

sync:文件同时写入硬盘和内存;

async:文件暂存于内存,而不是直接写入内存;

no_root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。显然开启这项是不安全的。

root_squash:NFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,拥有匿名用户权限,通常他将使用nobody或nfsnobody身份;

all_squash:不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都是拥有匿名用户权限;

anonuid:匿名用户的UID值,可以在此处自行设定。

anongid:匿名用户的GID值。

最后将这个目录全部挂在到要用的服务器中去,用其中一台apache服务器做例子:mount -t nfs 192.168.1.200:/opt/webapp  /var/www/html ,这样子apache服务器上的html目录就是webapp目录了。

这就是nfs文件共享了,可以说是最简单的一个步骤了,然后小镇下面文章讲下nginx的双机热备。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值