环境:

OS:CentOS 6.5 x86_64

Web+nfs   Server  IP:172.16.4.36

Web+nfs    Client   IP:172.16.4.35

一.在web+nfs 服务器端配置

1.安装http,nfs-utils相关软件

[root@kvm2 ~]# yum install nfs-utils httpd

2.查看服务器apache、nfsnobody 用户的id

[root@kvm2 ~]# id apache

uid=48(apache) gid=48(apache) groups=48(apache)

[root@kvm2 ~]# id nfsnobody

uid=65534(nfsnobody) gid=65534(nfsnobody) groups=65534(nfsnobody)

注;nfs是以ID号来确定是否能访问共享文件的,所以每台服务器的用户id必须相同否则会出现权限的问题。

3.启动服务

[root@kvm2 ~]# service rpcbind start

Starting rpcbind:                                          [  OK  ]

[root@kvm2 ~]# service nfs start

Starting NFS services:                                     [  OK  ]

Starting NFS mountd:                                       [  OK  ]

Starting NFS daemon:                                       [  OK  ]

Starting RPC idmapd:                                       [  OK  ]

注意这里的启动顺序是先启动rpcbind,再启动nfs。否则会出现下面的错误:

关闭先关nfs,先关rpcbind

4.创建共享目录和网页文件

[root@kvm2 ~]# mkdir -p /web/htdocs

[root@kvm2 yum.repos.d]# setfacl -R -m u:apache:rwx /web/  #设置apache 用户对此目录所有文件读写可执行权限

[root@kvm2 ~]# cd  /web/htdocs/

root@kvm2 htdocs]# touch index.html

[root@kvm2 htdocs]# echo "my web+nfs server" >index.html

5.web虚拟主机配置

[root@kvm2 htdocs]# vi /etc/httpd/conf/httpd.conf

<VirtualHost 172.16.4.36:80>

DocumentRoot /web/htdocs

ServerName www.wystest.com

ErrorLog /web/htdocs/error_log

CustomLog /web/htdocs/access_log commom

</VirtualHost>

[root@kvm2 htdocs]# httpd t  #检查是否成功

Syntax OK

[root@kvm2 log]# service httpd start  #启动出现错误,是因为没有把Selinux关闭

Stopping httpd:                                            [FAILED]

[root@kvm2 log]# setenforce 0 #关闭selinux

root@kvm2 log]# service httpd start

Starting httpd:                                            [  OK  ]

打开浏览器输入www.wystest.com显示如下说明配置成功

6.nfs的配置

[root@kvm2 yum.repos.d]# vi /etc/export

/web/htdocs 172.16.4.0/24(rw,sync,all_squash,anonuid=48,anongid=48)  #这里的id是apache用户的id

部分参数说明

ro                   该主机对该共享目录有只读权限

rw          该主机对该共享目录有只写权限

root_squash     客户机用root用户访问该共享文件夹时,将root用户映射成匿名用户

all_squash         客户机上的任何用户访问该共享目录时都映射成匿名用户

anonuid将客户机上的用户映射成指定的本地用户ID的用户

anongid将客户机上的用户映射成属于指定的本地用户组ID

sync资料同步写入到内存与硬盘中

async资料会先暂存于内存中,而非直接写入硬盘

secure限制客户端只能从小于1021的tcp/ip端口连接nfs服务器

重新加载nfs配置文件

[root@kvm2 yum.repos.d]# exportfs -rv

exporting 172.16.4.0/24:/web/htdocs

查看是否正常

root@kvm2 yum.repos.d]# showmount -e 127.0.0.1

Export list for 127.0.0.1:

/web/htdocs 172.16.4.0/24

看到共享目录了,说明成功了

二.Nfsclient和httpd安装

[root@nfsclient ~]# yum install nfs-utils httpd

1.web虚拟主机配置

[root@nfsclient ~]# vi /etc/httpd/conf/httpd.conf

<VirtualHost 172.16.4.35:80>

ServerAdmin  webmaster@dummy-host.example.com

DocumentRoot  /webdr

ServerName  www.wystest.com

</VirtualHost>

[root@nfsclient ~]# mkdir  /webdr

root@nfsclient ~]# cd /webdr/

[root@nfsclient webdr]# touch index.html

[root@nfsclient webdr]# echo "my web+nfs server" >index.html

[root@nfsclient ~]# httpd t       #检查是否正常

Syntax OK

2.启动服务

[root@nfsclient ~]# service httpd start

Starting httpd:                                            [  OK  ]

3.客户端挂载服务器的共享文件

root@nfsclient ~]# mount -t nfs 172.16.4.36:/web/htdocs /webdr/

[root@nfsclient ~]# df -h

Filesystem                         Size  Used Avail Use% Mounted on

/dev/mapper/vg_nfsclient-LogVol00  9.7G  776M  8.4G   9% /

tmpfs                              145M     0  145M   0% /dev/shm

/dev/sda2                          194M   28M  156M  16% /boot

172.16.4.36:/web/htdocs            9.7G  844M  8.3G  10% /webdr

root@nfsclient ~]# cd /webdr/

[root@nfsclient webdr]# ls

access_log  error_log  index.html     #文本同步过来了

4.在客户端新建文件查看是否同步到服务器端上

[root@nfsclient webdr]# touch test.html

root@kvm2 yum.repos.d]# cd /web/htdocs/

[root@kvm2 htdocs]# ls

access_log  error_log  index.html  test.html #服务器上也同步过来了