当前位置: > Linux故障 >

nfs共享解决web应用程序单点故障问题

时间:2014-06-06 03:55来源:linux.it.net.cn 作者:IT网

在之前,我们做过将apache、php、mysql分别部署在三台机器上,然而这样会出现单点故障,今天我们通过基于网络文件共享的方式来解决前段单点故障的问题。

一、拓扑图

wKioL1MwWtrRRSt2AAEyBoNvTSg649.jpg - 1

二、在后台php服务器上提供一个nfs共享目录

   在后台php的/etc/exports中添加如下内容

1
2
/www/html/wangfeng7399 192.168.1.0/24(rw,sync,all_squash)
/www/html/wangfeng17399 192.168.1.0/24(rw,sync,all_squash)

       这个配置文件就这样简单一行。共分为三部分,第一部分就是本地要共享出去的目录,第二部分为允许访问的主机(可以是一个IP也可以是一个IP段)第三部分就是小括号里面的,为一些权限选项。关于第三部分,简单介绍一下:

   rw :读写;

   ro :只读;

   sync :同步模式,内存中数据时时写入磁盘;

   async :不同步,把内存中数据定期写入磁盘中;

   no_root_squash :加上这个选项后,root用户就会对共享的目录拥有至高的权限控制,就像是对本机的目录操作一样。不安全,不建议使用;

   root_squash :和上面的选项对应,root用户对共享目录的权限不高,只有普通用户的权限,即限制了root;

   all_squash :不管使用NFS的用户是谁,他的身份都会被限定成为一个指定的普通用户身份;

  修改wangfeng7399和wangfeng17399的权限是nfsnobody能够读写

1
[root@localhost html]# setfacl -m u:nfsnobody:rwx *

三、在前端服务器上挂载共享的nfs服务器

1
2
[root@httpweb html]# mount -t nfs 192.168.1.201:/www/html/wangfeng7399 /www/html/wangfeng7399
[root@httpweb html]# mount -t nfs 192.168.1.201:/www/html/wangfeng17399 /www/html/wangfeng17399

四、测试,在一台服务器上创建一个文件,看是否在另外一台服务器上能否看到

1
2
在一台机器上创建一个test文件
[root@localhost wangfeng7399]# touch test

wKioL1MwctHihoumAAErF5YDx4Y316.jpg - 2

index.html文件也都可以访问成功

wKiom1Mwc6bjy9ToAABk-2WuSXg281.jpg - 3

wKioL1Mwc3_ipsYBAABso_hMNlA012.jpg - 4

五、实现开机自动挂载

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@httpweb html]# mount -a
在fstab中写入
192.168.1.201:/www/html/wangfeng7399 /www/html/wangfeng7399  nfs,_dev defaults 0 0
192.168.1.201:/www/html/wangfeng17399 /www/html/wangfeng17399  nfs,_dev defaults 0 0                                                                          
[root@httpweb html]# mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
192.168.1.201:/www/html/wangfeng7399 on /www/html/wangfeng7399 type nfs (rw,vers=4,addr=192.168.1.201,clientaddr=192.168.1.109)
192.168.1.201:/www/html/wangfeng17399 on /www/html/wangfeng17399 type nfs (rw,vers=4,addr=192.168.1.201,clientaddr=192.168.1.109)

在DNS应该写入

1
2
3
4
optios{
    directory "/var/named"
      rrset-order{order random;};
}

由于本人水平有限,难免会出现错误,请各位大神批评指正!

(责任编辑:IT)
------分隔线----------------------------