最近在做架构时,分离出来一台图片服务器,图片服务器是通过NFS(网络文件系统)给两台web服务器提供图片存储的,在编辑NFS配置文件(/etc/exports)时:想了一下,允许访问NFS共享目录的范围用“*”范围太大,不安全;于是想到了定义一个两台web服务器所在的网段来访问NFS服务,其他任何都无权挂载访问,特编辑NFS配置文件(/etc/exports)内容如下:
/data/bbs 192.168.0.%(rw,sync,no_root_squash,no_all_squash)
保存退出!启动NFS服务:service rpcbind start
service nfs start
在客户端挂载出现错误:
mount.nfs: access denied by server while mounting 192.168.0.113:/data/bbs
/data/bbs 192.168.0.*(rw,sync,no_root_squash,no_all_squash)
再次保存退出!重新启动NFS服务:service rpcbind start
service nfs start
再次在客户端挂载还是出现同样的错误:
mount.nfs: access denied by server while mounting 192.168.0.113:/data/bbs
在服务器本地也挂载试了下,也是同样的错误,错误同上,这时让错误折腾的有点晕乎,服务器本地挂载不成功,肯定是配置文件配置的不对,没有想到而已。
为了这个错误,找人咨询,自己网上查,有说是权限问题,有说是NFS配置文件问题,看系统日志,没有明显错误提示,这时静下心来想了想,以前做NFS时,定义网段是这样定义的,记得不太清楚,是不是下面这样的,抱着试一试的态度:
/data/bbs 192.168.0.0/24(rw,sync,no_root_squash,no_all_squash)
再次保存退出!重新启动NFS服务:service rpcbind start
service nfs start
再次在客户端挂载,奇迹般的成功了,没有出现错误。
这时打开论坛,试着发贴,没有问题,上传图片自动保存时,提示图片无法保存,郁闷了………
又是一顿修改NFS配置文件,不管怎么修改,都不行,还是一样,上传图片自动保存时,提示图片无法保存。没办法,网上找解决方法,一大堆,问别人也说说不好。这时候想起以前做NFS实验时是照着书上做的,没有任何错误,就成功了,翻开书看了看是这样操作的:
1.分别在NFS服务器上和客户端上添加同样的用户,并指定用户uid为一样的,同时设置该用户不能登录系统
useradd -u 505 www -M -s /sbin/nologin(分别在NFS服务器和客户端上面都创建指它uid号的用户)
2.分别在NFS服务器上和客户端上创建同样的挂载目录
mkdir /data/{bbs,blog,cms},客户端的挂载目录可以赋予web程序运行时的属主用户,用户组,服务器端不用改变NFS共享目录的属主用户,用户组
3.给NFS服务器上创建的共享目录赋予所有用户的写权限
chmod a+w -R /data
4.在NFS服务器上编辑NFS服务配置文件(/etc/exports),内容如下:
/data/bbs 192.168.0.0/24(rw,sync,no_root_squash)
保存退出!重新启动NFS服务:service rpcbind start
service nfs start
5.在客户端上再次重新卸载,挂载后,打开论坛,发贴上传图片,成功了,哈哈!
6.在客户端上设置开机自动挂载:
echo "192.168.0.113:/data/bbs /data/bbs nfs default 0 0" >>/etc/fstab