原文地址: http://blog.itpub.net/29806344/viewspace-1364778/
在WEB集群中一般都要上傳和刪除圖片。小規模的時候,圖片放在本地,再通過同步方式來保持一致。
常見的文件服務器:samba+web,ftp+web,nfs+web,rsync單向同步,分布式存儲
samba+web,ftp+web這2種需要改程序代碼,用的不多;rsync單向同步在小環境中用;nfs+web在中型環境用的最多;大型環境,海量文件用的是分布式存儲,比如hadoop等。
一:samba+web文件服務器
存儲:通過samba賬號和密碼來存儲圖片,需要修改程序代碼
調取:通過文件服務器web的URL
二:ftp+web文件服務器
存儲:通過ftp賬號和密碼來存儲圖片,需要修改程序代碼
調取:通過文件服務器web的URL
三:rsync+inotify文件服務器
存儲:保存到WEB本地,通過rsync同步到文件服務器
調取:通過文件服務器web的URL
缺點:單向同步
四:rsync+sersync+web文件服務器
和rsync+inotify相同,但是比其更快更節約資源
五:nfs+web文件服務器
存儲:遠程nfs文件夾掛載到本地,nfs同步
調取:1,通過文件服務器web的URL;2,直接在掛載的文件夾下取圖片
實際操作如下:
NFS+WEB文件服務器:192.168.47.142
WEB1:192.168.47.143
WEB2:192.168.47.144
在NFS文件服務器上:
yum install nfs-utils -y
yum install httpd -y
chmod 777 -R /var/www/html/upload
chkconfig nfs on
cat /etc/exports:
/var/www/html/upload *(rw,sync,root_squash) 192.168.47.142
/var/www/html/upload 192.168.47.0/24(rw,sync,root_squash)
/etc/init.d/rpcbind restart
/etc/init.d/nfs restart
在兩台WEB上:
mkdir /var/www/html/upload
chmod 777 -R /var/www/html/upload
cat /etc/fstab:
......
proc /proc proc defaults 0 0 192.168.47.142:/var/www/html/upload /var/www/html/upload nfs defaults 0 0
#注意:寫入/etc/fstab中,會自動開機掛載的
mount –a
#WEB2的操作和WEB1一樣即可;
注意:
當圖片多了,可以把upload的功能從中分離出來,可以考慮利用URL進行hash分組,用一組機器來實現upload,另一組機器來實現瀏覽。進行不同的設置,可以充分利用到NFS的緩存,可以提高性能