最近遇到了點問題,項目本來以為不會部署多個站點,上傳文件之類的就直接配置到本機的目錄下了,這樣一來部署多個站點也沒有公用的文件服務器,壞事了,網上一找辦法,nfs能解決這個問題,那就開始試一試。
環境介紹:
服務器:CentOS 6.4_64 server ip:10.1.1.52 服務器:CentOS 6.4_64 client ip:10.1.1.47
安裝nfs(兩台均安裝)
yum install nfs-utils rpcbind
服務端配置
1、創建共享目錄
mkdir /home/test
2、NFS文件配置
vi /etc/exports
增加如下一行:
/home/test/ 10.1.1.47(rw,no_root_squash,no_all_squash,sync)
使配置生效
exportfs -rv
注:配置文件說明:
/usr/local/test/ 為共享的目錄,使用絕對路徑。
NFS_Client_IP(rw,no_root_squash,no_all_squash,sync)為客戶端的地址及權限,地址可以是一個網段,一個IP地址或者是一個域名,域名支持通配符,如:*.youxia.com,地址與權限中間沒有空格,權限說明:
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值,通常是nobody或nfsnobody,可以在此處自行設定;
anongid:匿名用戶的GID值。
啟動服務端
service rpcbind start
service nfs start
客戶端掛載
1、創建需要掛載的目錄:
mkdir /usr/local/test
2、測試掛載:
showmount -e 10.1.1.52
3、掛載
mount -t nfs NFS_Server_IP:/usr/local/test/usr/local/test
mount
NFS_Server_IP:/usr/local/test on /usr/local/testtype nfs (rw,vers=4,addr= NFS_Server_IP,clientaddr= NFS_Client_IP)
如果信息如上顯示則掛載成功!
4、測試:
客戶端新建一個文件:
cd /home/test
echo "nfs test">>test.txt
看一下服務端共享目錄有此文件嗎